2017-01-19 15 views
-1

Моя проблема в том, что я быстро нажимаю кнопку «быстро», изображения накладываются друг на друга. и если я быстро нажимаю кнопку «быстро», я перестаю нажимать кнопку, но слайды будут продолжать работать.JQuery: как ограничить CLICK (сделать слайды)?

Например, если я нажимаю кнопку 20 раз быстро, изображение будет перекрываться, а слайд будет работать 20 раз, медленнее, чем нажатая кнопка. Поэтому я хотел бы запретить запуск метода щелчка, пока слайд движется, нажав кнопку «button». Что мне делать?

$(function(){ 
    var max = $("header > img").length -1; 
    var sno = 0; 
    $("button").on("click",function(){ 
     $($("header > img")[sno]).animate({ 
      left: "100%" 
      },1000,function(){ 
      $(this).css({left: "-100%"}); 
     }); 
     sno++; 
     if(sno > max) sno = 0; 
     $($("header > img")[sno]).animate({ 
      left: "0%" 
     },1000); 
    }); 
}); 
+1

Привет и добро пожаловать в SO. Сначала прочитайте [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). Тогда _ «Пожалуйста, ответьте быстро и хорошо», не поможет вам получить хорошие ответы, но, как правило, будет подавлять голоса за ваш вопрос. Итак, создайте [скрипку] (https://jsfiddle.net/), а затем отредактируйте свой вопрос и добавьте ссылку на свою скрипту на свой пост, чтобы мы могли расследовать причину вашей проблемы ... – EhsanT

ответ

1

Вы можете установить запрет на кнопку при нажатии кнопки.

$(function(){ 
    var max = $("header > img").length -1; 
    var sno = 0; 
    $("button").on("click",function(){ 
     var button = this; 
     $(button).prop('disabled', true); 
     $($("header > img")[sno]).animate({ 
      left: "100%" 
      },1000,function(){ 
      $(this).css({left: "-100%"}); 
      $(button).prop('disabled', false); 
     }); 
     sno++; 
     if(sno > max) sno = 0; 
     $($("header > img")[sno]).animate({ 
      left: "0%" 
     },1000,function(){ 
      $(button).prop('disabled', false); 
     }); 
    }); 
} 

И отпустите его в полной функции обратного вызова.

+0

Очень спасибо !!!!!! –