У меня есть HTML и jQuery, которые скользят div
вверх и вниз, чтобы показать или скрыть его при нажатии ссылки:
<ul class="product-info">
<li>
<a href="#">YOU CLICK THIS TO SHOW/HIDE</a>
<div class="toggle">
<p>CONTENT TO SHOW/HIDE</p>
</div>
</li>
</ul>
$('div.toggle').hide();
$('ul.product-info li a').click(function(event){
$(this).next('div').slideToggle(200);
}
Мой вопрос: как использовать, preventDefault()
чтобы ссылка не действовала как ссылка и добавляла "#" в конец моего URL-адреса и переходила наверх страницы?
Я не могу понять правильный синтаксис, я просто получаю сообщение об ошибке
preventDefault () не является функцией.
javascript
jquery
Крис Дж Аллен
источник
источник
href
тега привязки (a
) не может быть пустым ... Но мы можем установить его в значениеjavascript:<code-here>
, это допустимо. Затем мы вводим<code-here>
просто пустой оператор, добавляя точку с запятой. Таким образом, ссылка ничего не делает.Рекомендуется не использовать
return false
, поскольку в результате возникают 3 вещи:Поэтому в такой ситуации вам действительно следует использовать только
event.preventDefault();
Архив статьи - События jQuery: прекратить (неправильно) использовать return False
источник
В качестве альтернативы вы можете просто вернуть false из события щелчка:
Что остановило бы запуск A-Href.
Обратите внимание, однако, из соображений удобства использования, в идеальном мире href все равно должен куда-то идти, для людей, которые хотят открывать ссылку в новой вкладке;)
источник
Я только что протестировал это решение, отличное от JQuery, и оно работает.
источник
использование
источник
href="javascript:// Send Email"
Еще один способ сделать это в JavaScript , используя
inline onclick
,IIFE
,event
иpreventDefault()
:источник
<a href='#' onclick="event.preventDefault()">Click Me</a>
после нескольких операций, когда страница должна наконец перейти по ссылке, вы можете сделать следующее:
источник
preventDefault
, а затем выполнять действие по умолчанию самостоятельно? Просто сделайте то, что вам нужно добавить, и пусть значение по умолчанию останется в силе.Почему бы просто не сделать это в CSS?
Уберите атрибут href из тега привязки
В вашем CSS
источник
Если остановка распространения события вас не беспокоит, просто используйте
в конце вашего обработчика. В jQuery он предотвращает поведение по умолчанию и останавливает всплытие событий.
источник
Вы можете использовать
return false;
из вызова события, чтобы остановить распространение события, он действует как егоevent.preventDefault();
отрицание. Или вы можете использоватьjavascript:void(0)
атрибут href для оценки данного выражения и затем вернутьсяundefined
к элементу.Возврат события при его вызове:
Пустой случай:
Вы можете узнать больше о: Каков эффект добавления void (0) для href и 'return false' в прослушиватель событий щелчка тега привязки?
источник