2011-04-29 62 views
1

我試圖讓我們取消綁定動畫上的點擊,直到動畫完成,以保持重疊的發生。解除綁定工作正常,但當然,然後event.preventDefault停止工作,我的按鈕/鏈接再次變爲活動。我不知道如何解決這個問題。取消綁定點擊,但保持eventPreventDefault();

縮短了代碼的版本是:

$('a.Next').bind('click', SlideFwd); 
function SlideFwd(e){ 
    e.preventDefault(); 
    $('a.Next').unbind(); 
    $('ul.GridviewList').animate({ 
     left: '-=800px' 
     }, 'slow', function() { 
     $('a.Next').bind('click', SlideFwd);  
    }); 
}; 

和HTML是:

<div> 

    <div class="SlideControl"> 
     <p class="Pages"><span class="ProdCountDisplay">#</span> of <span class="ProdCountTotal">10</span></p> 
     <ul> 
      <li><a class="Disabled button_Back Previous" href="#">Prev</a></li> 
      <li><a class="button_Next Next" href="#">Next</a></li> 
     </ul> 
    </div> 
    <ul class="GridviewList"> 
     <li class="ProdWrap">This is a slider space 1</li> 
     <li class="ProdWrap"> This is a slider space 2</li> 
     <li class="ProdWrap"> This is a slider space 3</li> 
     <li class="ProdWrap"> This is a slider space 4</li> 
     <li class="ProdWrap"> This is a slider space 5 </li> 
     <li class="ProdWrap">This is a slider space 6 </li> 
     <li class="ProdWrap"> This is a slider space 7</li> 
     <li class="ProdWrap"> This is a slider space 8 </li> 
     <li class="ProdWrap"> This is a slider space 9 </li> 
     <li class="ProdWrap"> This is a slider space 10 </li> 
    </ul> <!-- ul.Gridviewlist --> 
</div> 

一個完整的工作版本是在這裏: http://iwrb.idleprattle.com/Slider.htm (僅在下次有取消綁定/綁定集現在開始)

我也嘗試了在函數SlideFwd之外的preventDefault,但它也必須取消綁定。 I.E.

$('a.Next').click(function(){e.preventDefault();}); 

回答

3

你可以這樣做:

$('a.Next').bind('click', SlideFwd); 

... 

$('a.Next').unbind().bind('click',function(e){e.preventDefault();}); 

... 

$('a.Next').unbind().bind('click', SlideFwd); 
+0

真棒,這個曾經有一個微小的變化:。 $( 'a.Next')解除綁定()綁定( '點擊',函數(){即的preventDefault();}); 更改爲 $('a.Next')。unbind()。bind('click',function(e){e.preventDefault();}); – Tami 2011-04-29 04:00:02

+0

啊,沒有測試過,錯過了e。爲後人更新的答案! – 2011-04-29 12:57:08

0

爲什麼不從鏈接中刪除href-attribute。它沒有用處,遊標可以通過CSS設置,並且如果a元素沒有href,如果沒有附加事件處理程序,沒有什麼可阻止。