Насколько необходимо # в href для jQuery - PullRequest
2 голосов
/ 27 ноября 2010

Иногда, когда вы запускаете фрагмент jQuery, вы помещаете символ # в атрибут HREF, но почему? Я понимаю, что означает #, но я спрашиваю, есть ли у вас <a href="#" id="runScript">Run</a>

почему вы на самом деле ставите # в href и возвращаете false, можете ли вы просто оставить его пустым и достичь тех же результатов?

Ответы [ 7 ]

2 голосов
/ 27 ноября 2010

Если вы оставите это поле пустым, какой-то необычный браузер может не стилизовать <a> в качестве ссылки с возможностью нажатия. Это, наверное, единственная причина, по которой нам нужно это #.

Лучше всего сделать с href однако ссылку на страницу, которая выполняет ту же функцию без сценария, например <a href="/new" id="load-new-btn">New Items</a>

2 голосов
/ 27 ноября 2010

Если в браузере нет javascript, нажатие на ссылку не загрузит новую страницу.

1 голос
/ 27 ноября 2010

Как уже говорилось выше, он не будет восприниматься как кликабельная ссылка Но вместо этого вы можете просто сделать:

a{
  cursor:pointer;
}

в CSS.

1 голос
/ 27 ноября 2010

Если оставить атрибут href пустым, это не приведет к прекращению действия по умолчанию. Пустое значение может быть воспринято браузером как не являющееся значением, что заставляет его отображать элемент в виде закладки вместо ссылки или в виде ссылки на ту же страницу, вызывая перезагрузку.

Значение # - это просто URL-адрес, который вызывает минимум помех, если сценарий не может подавить действие по умолчанию. Если сценарий завершается с ошибкой, действие по умолчанию все равно будет запущено.

0 голосов
/ 27 ноября 2010

Еще одна вещь, на которую следует обратить внимание: если у вас нет атрибута href, он визуально не будет действовать как обычная ссылка.Смотрите этот пример .

0 голосов
/ 27 ноября 2010

если вы оставите href как "" (пусто), та же страница, на которой вы находитесь, снова загрузит страницу

вернуть false или # убедиться, что страница не загружена.

0 голосов
/ 27 ноября 2010

Оба варианта это зло.Например они терпят неудачу для "Открыть в новой вкладке".Вы должны использовать #enoughInfoToLoadThePage вместо этого.Или, возможно, URL, который работает без JavaScript.

И вы можете даже захотеть использовать эту технику , чтобы сделать их доступными для поиска в Google.

...