2010-09-01 3 views
1

Это классно, и я знаком с этим. Однако я хочу, чтобы следующая и предыдущая кнопки оставались видимыми, просто не нажимайте кнопку. В моей конкретной ситуации кнопки представляют собой изображения, которые являются частью дизайна. Я просто хочу, чтобы пользователь не смог щелкнуть до окончания анимации.JQuery Disable Следующая кнопка до окончания анимации

ответ

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 истинно, и установить его в ложное после завершения анимации (использование JQuery анимации обратного вызова). более

8

один метод:

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

Довольно хорошо ... JQuery имеет каждый кусок кода, вам может понадобиться. –

+0

Очень полезно. Благодаря! – 2013-11-20 20:03:20

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

    setTimeout(btn, animation duration); 
    }); 
} 
Смежные вопросы