jQuery:阻止事件在动画期间执行

时间:2009-10-16 10:28:45

标签: jquery events animation slider

好的,我已经检查了这个帖子:

Prevent click event in jQuery triggering multiple times

  • 并尝试取消绑定/重新绑定事件,但无济于事。我基本上有一个滑块库,下一个/上一个按钮。我想阻止在动画期间点击下一个按钮。

    prev = $("#portfolio_nav_prev");
    next = $("#portfolio_nav_next");
    
    function nextAnim(){
        //remove handler
        next.unbind();
    
        gallery_frame.animate({scrollLeft:targetPos}, 300, 'easeInOutQuart',function(){next.bind(nextAnim)});
        return false;
        }
    

任何想法?

1 个答案:

答案 0 :(得分:0)

这是我最终使用的解决方案 - 问题是该元素是一个锚点,所以当我取消绑定点击动画时 - 它试图离开页面,从而打破了动画。

所以,我取消绑定事件,然后点击绑定返回false:

next.unbind();
next.click(function(){return false;})

然后在动画回调中做了相同的操作,但将其绑定回动画。

gallery_frame.animate({scrollLeft:targetPos}, 300, 'easeInOutQuart',
function()next.unbind();next.bind('click',nextAnim)});

但是,我认为真正的解决方案是首先使用一些非锚元素制作next / prev按钮。