2014-10-24 2 views
0

jquery에서 stop() 요소를 사용하는 것에 대해 이해하지 못합니다. 이 예제에서는 사용자가 myfunction 함수를 실행할 때 div를 열려고 시도합니다 (예 : 트리거를 클릭하여) 여러 시간을 클릭하면 #mydiv가 3 초를 기다리지 않고 사라집니다. 첫 번째 클릭 후jquery와 함께 stop()을 사용하여 함수를 한 번만 실행하십시오.

function myfunction(hello) 
{ 
    $("#mycontener").html(hello); 
$("#mydiv").stop(true, true).slideDown(250, function() { 
setTimeout(function() { 
    $("#mydiv").slideUp(250); 
}, 3000); 
}); 
}; 

충분히 명확합니까? 감사합니다.

답변

1

향후 호출시 발생하지 않도록 시간 제한을 지워야합니다. 다음과 같은 내용 :

(function() { 
    var handle; 
    function myfunction(hello) { 
     clearTimeout(handle); 

     $("#mycontener").html(hello); 
     $("#mydiv").stop(true, true).slideDown(250, function() { 
      handle = setTimeout(function() { 
       $("#mydiv").slideUp(250); 
      }, 3000); 
     }); 
    } 

    window.myfunction = myfunction; 
})(); 
+0

많은 감사, 그것은 작동합니다 :)! – Damien

관련 문제