如果自上次单击该元素以来仅经过500毫秒,如何使.on()函数中的所有内容运行?我正在尝试使此工作正常进行,以使您无法快速触发该元素。我希望点击仅在自上次点击起经过500毫秒后才注册。

$(document).on('click', 'a.next, a.prev, nav ul a', function(e){

    e.preventDefault();

    //Set side nav item to be active
    var page = $(this).data("page");
    var sectionClicked = $(this).data("section");
    var currentSection = $("body").attr("data-current-section");
    var currentPage = $("body").attr("data-current-page");

    if($(this).hasClass("side_nav_link")){
        var section = $(this).data("section");

        ga('send', 'event', {
          'eventCategory': 'Side Nav',
          'eventAction': 'Click',
          'eventLabel': section
        });
    }

    if($(this).hasClass("next") ){
        ga('send', 'event', {
          'eventCategory': 'Prev/Next Links',
          'eventAction': 'Click',
          'eventLabel': 'Next'
        });
    }

    if($(this).hasClass("prev") ){
        ga('send', 'event', {
          'eventCategory': 'Prev/Next Links',
          'eventAction': 'Click',
          'eventLabel': 'Prev'
        });
    }


    loadContent(page, sectionClicked, currentSection, currentPage);

});

最佳答案

您可以通过setTimeout并创建一个toggled变量来执行此操作。

var toggled = false
(document).on('click', '#target', function(e){
    if(!toggled){
        toggled = true
        setTimeout(function(){
            toggled = false
        },500)
        //Do stuff
    }
});


如果未切换点击(例如,等待500毫秒),它将执行操作,然后将计时器设置为500毫秒,然后允许它再次执行操作。

10-02 09:17