2016-03-16 2 views
2

Я пытаюсь сделать анимацию после нажатия кнопки с помощью обещаний. Но независимо от того, что я делаю, это все равно позволит мне нажимать.Задержка jquery не считается анимацией

Я показываю классы валидатора формы Bootstrap, а затем удаляя их. Как это:

messageEffect : function(container) { 
       return container.fadeIn(100).delay(1000).fadeOut(); 
      }, 

$.when(this.messageEffect($container)).done(function() { 
        $container.empty(); 
        $icon.remove(); 
        $group.removeClass('has-feedback has-' + alertType); 
       }); 

Я звоню эту функцию, называемую «showAlert()» после того, как некоторые вещи, если что-то выходит из строя, я показать сообщение об ошибке ниже поля ввода.

Вещь, если я продолжаю нажимать и нажимать, она будет спамить сообщения, пока они не исчезнут (конечно) из-за анимации.

Я пробовал использовать ('div-that-is-animating').is(':animated'), но не работал, я все еще могу спамить их.

Я также попытался сделать развязку переключения и щелкнуть, прежде чем называть эту функцию showAlert(), но также не работал.

Это потому, что задержка (1000) не считается как анимация? Или что еще я могу попробовать?

Заранее спасибо.

ответ

1

Смотрите, если это работает (предполагается, что кнопка идентификатор myButton):

messageEffect : function(container) { 
       $('#myButton').attr('disabled', true); 
       return container.fadeIn(100).delay(1000).fadeOut(); 
      }, 

$.when(this.messageEffect($container)).done(function() { 
        $('#myButton').attr('disabled', false); 
        $container.empty(); 
        $icon.remove(); 
        $group.removeClass('has-feedback has-' + alertType); 
       }); 
+0

огромная идея! работал как шарм! :) ty! – msqar

Смежные вопросы