2010-12-05 3 views
2
$('#element').dblclick(function(e){ 
    console.log("event"); 
});    

非常に高速なクリックで要素をクリックすると、何度もイベントが表示されます。しかし、私はユーザーが連続してダブルクリックをしないようにしたい、1秒間スキップすることができます、どうすればいいですか?ありがとうございました。継続的にダブルクリックしないでください。

答えて

2
var click_allowed = true; 
$('#element').dblclick(function(e){ 
    if (!click_allowed) return; 
    console.log("event"); 
    click_allowed = false; 
    window.setTimeout(function() { 
    click_allowed = true; 
    }, 1000); 
} 
+1

'true'をと' false'は小文字で書く必要があります。それ以外の場合は参照エラーが発生します。 – jAndy

+0

私に通知してくれてありがとう。修正しました。 – PeeHaa

0
var lastClick = 0; 
$('#element').dblclick(function(e){ 
    var time = (new Date()).getTime(); 
    if(time > lastClick + 1000) { 
    lastClick = time; 
    console.log("event"); 
    } 
} 
2

live demoを)あなたは、イベントハンドラが一度だけ実行されることを確認して.oneを使用することができ、その後、あなたはそれが一度に十分な時間が経過した再バインドすることができます

function dblclickHandler(e){ 
    console.log("event"); 
    setTimeout(setHandler, 1000); 
} 

function setHandler() { 
    $('#element').one('dblclick', dblclickHandler); 
} 

setHandler(); 
関連する問題