2017-01-19 8 views
-1

빠른 속도로 연속해서 "버튼"을 누르면 내 이미지가 겹칩니다. 그리고 "버튼"을 빠르게 연속해서 누르면 버튼을 멈추게되지만 슬라이드는 계속 작동합니다.JQuery : CLICK (슬라이드 만들기)을 제한하는 방법은 무엇입니까?

예를 들어 버튼을 빠르게 20 번 누르면 이미지가 겹치고 슬라이드가 버튼을 누른 속도보다 20 배 더 느리게 작동합니다. 그래서 "버튼"을 클릭하여 슬라이드가 움직이는 동안 클릭 방식이 실행되지 않도록하고 싶습니다. 어떻게해야합니까?

$(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

안녕하세요. 먼저 [최소한의 완전하고 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve)을 읽어보십시오. 그런 다음 _ "빨리 대답하십시오."_ 좋은 대답을 얻는 데 도움이되지는 않지만 일반적으로 질문에 대해 투표를합니다. 그러므로, [fiddle] (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

매우 감사합니다. !!!!!! –