如果自上次单击该元素以来仅经过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毫秒,然后允许它再次执行操作。