2010-09-01 21 views
1

這很酷,我對此很熟悉。不過,我希望下一個和上一個按鈕保持可見,只是不能點擊。在我的特殊情況下,按鈕是設計中的一部分。我只想讓用戶在動畫結束之前無法點擊。Jquery禁用Next按鈕,直到動畫結束

回答

9
$(function(){ 
    $("#previous").bind("click", Previous); 
    $("#next").bind("click", Next); 
}); 

function DoAnimation() { 
    $("#previous,#next").unbind("click"); 
    $('#id').animate(
     complete: function() { 
      $(this).after('<div>Animation complete.</div>'); 
      $("#previous").bind("click", Previous); 
      $("#next").bind("click", Next); 
     } 
    }); 
} 

function Previous() { } 
function Next() { } 
-1
$('#mybtn').attr("disabled","disabled"); // to Disable Button 

$('#mybtn').removeAttr("disabled"); // to Enable Disabled button 
0

我猜你有JavaScript調用的圖像的onclick的,使用一個變量MyApp.IgnoreNextPrevClicks來標記的onclick處理程序是否不執行或不。

MyApp={} 
MyApp.IgnoreNextPrevClicks=false; 
MyApp.PrevClick=function() { 
    if(MyApp.IgnoreNextPrevClicks) return; 
    //real work goes here 
} 

現在呼籲jQuery的動畫製作前,設置MyApp.IgnoreNextPrevClicks爲true,和動畫結束(使用jQuery動畫回調)後,將其設置爲false。

8

多了一個技術:

$(".next,.prev").click(function(){ 
    if ($('#my_animated_elelement').is(':animated')) 
    { 
     return false; 
    } 
}) 
+0

不錯... ... jQuery有每一段代碼,您可能需要。 – 2013-06-21 22:32:58

+0

非常有用。謝謝! – 2013-11-20 20:03:20

0
function btn() { 
    $('#btn').one('click', function(){ 
    //call your animation function here. 

    setTimeout(btn, animation duration); 
    }); 
}