JQuery Отключить следующую кнопку до завершения анимации

StackOverflow https://stackoverflow.com/questions/3618958

  •  26-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

$(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() { }

Другие советы

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

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

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

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

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

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

     setTimeout(btn, animation duration);
  });
}
$('#mybtn').attr("disabled","disabled"); // to Disable Button

$('#mybtn').removeAttr("disabled"); // to Enable Disabled button
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top