我正在编写一个简单的淡入淡出幻灯片,带有“上一张”和“下一张”按钮。
问题是当我很快地点击“下一张”按钮(例如,点击两次),在第一个事件完成之前,第二个事件就会被执行,因此在不到一秒的时间内,我会看到页面上的两张图像。
$("#next_button").click(function (){
$("#slide"+current_slide).fadeOut(FADE_DURATION, function () {
current_slide ++;
current_slide = current_slide % slides_number;
$("#slide"+current_slide).fadeIn(FADE_DURATION, function (){
$(".slide_image").not("#slide"+current_slide).attr("style", "display: none;");
});
});
});
在
fadeIn()
之后的最后一行,我甚至尝试隐藏除了当前图像以外的所有内容,希望问题能得到解决,但这并没有起作用。我读到了一些关于
event.stopImmediatePropagation()
的东西,但我无法使用它,或者可能不是我的解决方案。
如何强制jQuery
忽略在同样的事件完成之前执行任何类似的事件?