我制作一个剧本。这会在img标记中加载新图像。这是脚本:
button.click(function(e) {
e.preventDefault();
var url = $(this).attr("href");
var img = $('#photo-gallery .teaser img');
$('li', list).attr('data-flag', 'close');
img.animate({ opacity: 0 }, 500, function() {
$('img', teaser).attr("src", url);
});
img.animate({ opacity: 1 }, 500)
$(this).closest('li').attr('data-flag', 'open');
});
但是,我对这个脚本有疑问。单击快速按钮时。如果你很快接续点击。比单击事件的脚本要多。我该如何解决这个问题。
答案 0 :(得分:1)
使用标记将其设置为true as soon as the event execution starts
并在exectuion结束时将其设置为false。 如果在alreadClicked标志为true时触发了其他事件,则从事件返回而不采取任何操作。
alreadClicked = false;
button.click(function(e) {
if(alreadClicked)
return;
alreadClicked = true;
e.preventDefault();
var url = $(this).attr("href");
var img = $('#photo-gallery .teaser img');
$('li', list).attr('data-flag', 'close');
img.animate({ opacity: 0 }, 500, function() {
$('img', teaser).attr("src", url);
});
img.animate({ opacity: 1 }, 500)
$(this).closest('li').attr('data-flag', 'open');
alreadClicked = false;
});
答案 1 :(得分:0)
JQuery one允许仅执行一次事件
button.one("click", function(e) {
/* code ... */
});