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