jQuery preventDefault в функции

Я использовал preventDefault для такого события элемента:

$('#element').click(function (e) { do stuff... }); 

Теперь 9X_jquery-after у меня есть функция, которая уже принимает 9X_vanilla-javascript аргумент, в котором я хотел бы использовать 9X_jquery-after preventDefault, но я не уверен, как это сделать:

Services function sectionScroll(id) { history.pushState(null, null, '#' + id); $('html, body').animate({ scrollTop: $("#" + id).offset().top }, 1000); } 

Я попытался 9X_jquery-post использовать вместо этого return false, но 9X_jquery это вызвало некоторое мерцание при нажатии 9X_toggleclass на ссылку.

Как добавить preventDefault к указанной выше 9X_addclass функции?

ИЗМЕНИТЬ

Мой первоначальный вопрос касался 9X_vanilla-javascript использования preventDefault в функции с 9X_jquery-callback другими аргументами. В конце концов, мне 9X_jquery-post не нужно было использовать встроенный javascript 9X_jquery-post (казалось, что нет никакого способа избежать 9X_javascript-library этого), так что это то, что я использовал. Думаю, довольно 9X_js аккуратно:

Services $('.menu-link').click(function (e) { e.preventDefault(); var location = $(this).attr('href'); history.pushState(null, null, location) $('html, body').animate({ scrollTop: $(location).offset().top }, 1000); }); 

5
1

  • Есть ли причина, по к ...
2
Общее количество ответов: 2

Ответ #1

Ответ на вопрос: jQuery preventDefault в функции

Что ж, если вы действительно хотите использовать 9X_jquery-post встроенные обработчики событий (хотя я бы 9X_jquery не рекомендовал это), попробуйте следующее:

Services 
 

13
0

Ответ #2

Ответ на вопрос: jQuery preventDefault в функции

Вы можете использовать jQuery, как и в другом 9X_jquery-post примере, для обработки события щелчка:

Services $('#services_link').click(function (e) { var id = "services"; history.pushState(null, null, '#' + id); $('html, body').animate({ scrollTop: $("#" + id).offset().top }, 1000); e.preventDefault(); } 

Это 9X_ecmascript позволит вам вызвать preventDefault для события.

Это также 9X_jquery-callback намного лучше, поскольку вы больше не будете 9X_vanillajs использовать встроенный Javascript, и всю 9X_javascript логику событий можно будет обрабатывать 9X_javascript с помощью одного метода (например, jQuery), а 9X_.js не часть ее в jQuery, а часть встроенной.

Я 9X_jquery-callback бы посоветовал прочитать "Why Should I Avoid Inline Scripting?", чтобы 9X_jquery понять, почему вам следует избегать встроенных 9X_removeclass скриптов.

2
0