2009-10-16 71 views
1

OK執行,我檢查這個線程:jQuery的:防止事件從動畫的持續時間

Prevent click event in jQuery triggering multiple times

  • ,並試圖取消綁定/重新綁定所描述的事件,但無濟於事。我基本上有一個滑塊庫,有一個next/prev按鈕。我想阻止在動畫期間點擊下一個按鈕。

    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; 
        } 
    

什麼想法?

+0

爲什麼要創建無響應的接口?相反,當你點擊一個按鈕時,你應該'.stop()'當前動畫。 – slikts 2009-10-16 10:39:11

+0

因爲接口需要接受更多事件之前完成一個滑塊動畫,否則它打破了滑塊。 – sunwukung 2009-10-19 14:17:43

回答

0

這裏是我結束了使用的解決方案 - 問題是該元素是一個錨,所以當我解開點擊動畫 - 它試圖導航離開該頁面,從而打破了動畫。

所以,我解開事件,然後做點擊綁定返回false:

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

然後做動畫回調相同,但結合它回到動畫。

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

不過,我認爲真正的解決方法是使下/上一個按鈕,將部分非錨元素擺在首位。