Кнопка Jquery Disable Next до завершения анимации - PullRequest
1 голос
/ 01 сентября 2010

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

Ответы [ 5 ]

9 голосов
/ 01 сентября 2010
$(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() { }
8 голосов
/ 27 марта 2012

еще одна техника:

$(".next,.prev").click(function(){
    if ($('#my_animated_elelement').is(':animated'))
    {
        return false;
    }
})
0 голосов
/ 24 августа 2017
function btn() {
   $('#btn').one('click', function(){
     //call your animation function here.

     setTimeout(btn, animation duration);
  });
}
0 голосов
/ 01 сентября 2010

Я полагаю, у вас есть вызовы JavaScript для изображений onclick, используйте переменную MyApp.IgnoreNextPrevClicks, чтобы указать, выполняются ли обработчики onclick или нет.

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

Теперь перед вызовом аниматора jquery установите MyApp.IgnoreNextPrevClicks в значение true и установите его в значение false после завершения анимации (используйте обратный вызов анимации jquery).

0 голосов
/ 01 сентября 2010
$('#mybtn').attr("disabled","disabled"); // to Disable Button

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