2011-09-28 4 views
0

클릭시이 기능을 호출합니다.더블 클릭으로 기능 실행을 막는다.

save_edit: function() { 

    this.do_save(); 

}, 

더블 클릭을 방지하기 위해 클릭 한 번 버튼을 비활성화하려고합니다. 이 기능 내에서 어떻게 할 수 있습니까?

+0

는 어떻게 함수가 호출되어

$("#btn").one(function(){ //do stuff once and remove handler }); $("#btn").dblclick(function(){ return false; }); 
? –

+0

하위 순열을 사용 중지 하시겠습니까? '더블 클릭'만 사용 중지 하시겠습니까? –

+0

이 재미를 실행하는 모든 un에서 버튼을 클릭하면 먼저 실행됩니다 ..................... subequent clics를 비활성화합니다 –

답변

0

$("#el").click(function() { 
    $(this).prop('disabled',true); 
    // do more stuff 
    $(this).prop('disabled',false); // if desired 
}); 
또는, .

save_edit: function() { 
    if(this.timer)return; 
    this.do_save(); 
    this.timer = window.setTimeout(function(){}, 300); //number of ms before you want another submit to happen 
}, 
+0

에서 dblclick을 사용 중지하려는 대상에 따라 다릅니다. jquery (<1 : 6)의 이전 버전에서는 prop 대신 attr을 사용해야합니다. – realshadow

+0

이 함수에서 해당 버튼의 ID를 얻을 수있는 방법 ??????? –

+0

이것은 사실입니다. 이전 버전의 jQuery를 사용한다면'$ (this) .attr ('disabled', 'disabled')'및'$ (this) .attr ('disabled', '')'를 사용하십시오. – Blazemonger

0
$("#element").dblclick(function(){ 
    return false; 
}); 

$("#element").click(function(){ 
    //do stuff 
}); 
+0

어떻게 그 버튼의 id를 얻을 수 있습니까? 이 기능에서 ??????? –

+0

@TurkeshPatel : – genesis

0

, 당신은 시간의 설정 peroid를위한 기능을 호출하는 방법을 중지 할 수 있습니다 : 당신은 몇 가지 버튼이있는 경우

+0

솔루션에 대한 thnx가 내게 적합하지 않습니다 –

+0

이 스타일의 접근 방식은 do_save가 두 번 호출되는 것을 막지 않습니다. 콜백에서 .save_edit()를 호출하면 비동기 호출이 발생하는 것을 상상해보십시오. 병렬로 발생할 수 있습니다. do_save가 시작된 후 "잠그다"는 경우, 전에 잠금을 설정하거나 경쟁 조건이 있어야합니다. –

0
관련 문제