Я в настоящее время использую <a>
теги с jQuery для инициирования вещей как события щелчка, и т.д.
Пример <a href="#" class="someclass">Text</a>
Но я ненавижу, как '#' заставляет страницу перейти к верхней части страницы. Что я могу сделать вместо этого?
В jQuery, когда вы обрабатываете событие щелчка, возвращает false, чтобы ссылка не отвечала обычным способом предотвращает действие по умолчанию, которое заключается в посещении атрибута href
, от происходит (согласно комментарию PoweRoy и ответу Эрика ):
$('a.someclass').click(function(e)
{
// Special stuff to do when this link is clicked...
// Cancel the default action
e.preventDefault();
});
Просто используйте вместо
и используйте CSS, чтобы стилизовать его под ссылку, если хотите.
Кнопки созданы специально для нажатия, и им не нужны атрибуты href.
Лучший способ - использовать действие onload для создания кнопки и добавить ее куда нужно с помощью javascript, так что при отключенном javascript они вообще не будут отображаться и не запутают пользователя.
При использовании href="#"
вы получаете множество различных ссылок, указывающих на одно и то же место, что не будет работать, если агент не поддерживает JavaScript.
Вы можете просто передать тег привязки без свойства href и использовать jQuery для выполнения необходимого действия:
Если элемент не имеет значимого значения href, то на самом деле это не ссылка, так почему бы вместо этого не использовать какой-нибудь другой элемент?
Как предложил Неотор, диапазон так же уместен и при правильном стиле будет заметно заметен как элемент, на который можно щелкнуть. Вы даже можете прикрепить событие наведения, чтобы элемент «загорался» при наведении курсора мыши на него.
Однако, сказав это, вы можете переосмыслить дизайн своего сайта, чтобы он работал без javascript, но улучшался с помощью javascript, когда он доступен.
Просто используйте аннотацию
<a href="javascript:;" class="someclass">Text</a>
JQUERY
$('.someclass').click(function(e) { alert("action here"); }
Если вы хотите использовать якорь, вы можете использовать http://api.jquery.com/event.preventDefault/ , как и другие ответы предложенный.
Вы также можете использовать любой другой элемент, например диапазон, и прикрепить к нему событие щелчка.
$("span.clickable").click(function(){
alert('Yeah I was clicked');
});
Чтобы избежать этого, можно использовать event.preventDefault ()
. Подробнее читайте здесь: http://api.jquery.com/event.preventDefault/ .
вы даже можете написать это вот так:
<a href="javascript:void(0);"></a>
я не уверен, что это лучший способ, но это способ :)