我制作的转盘有问题。它具有一个位于容器内的元素,这些元素在单击带有moveCarouselRight类的按钮时会按可见容器的大小向左移动。

我的问题是,当用户单击得太快(即双击)时,动画似乎会触发两次,这意味着元素没有正确地适合容器,就好像第一个“向左”操作没有完成一样。

如您所见,我尝试使用'disabled'标志修复此问题,但似乎第二个click事件在第一个事件的js到达该行代码之前就触发了。

var disabled = false;

$('.moveCarouselRight').on('click', function() {

if (!disabled) {

    disabled = true;

    //change css property 'left' depending on container size

    disabled = false;
}
});


链接到jsFiddle:
jsfiddle.net/6TPcT/5

最佳答案

用这个:

JS

$(".moveCarouselRight").dblclick(function(event){
    event.preventDefault();
});


要么

$(".moveCarouselRight").dblclick(function(event){
    return false;
});


要么

$(".moveCarouselRight").one("click", function(event) {
    //do something
});


链接:http://api.jquery.com/one/

关于javascript - 轮播动画事件发行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20472405/

10-12 13:34