双击Jquery中的歧义?

我试图在窗口中设置一些文本, single and double click in jquery

但我面临double clickambiguity

尝试double click ,首先single clickfunction,然后double click工作。

类似的问题在这里检查 ,这是非常古老的。 它也有一些问题。

任何使用最新jquery版本的新答案。

查看我的问题 现场演示的现场演示

这是我的代码,

       Click here 
$("#press").click(function(event) { event.preventDefault(); $("#log").text("I am single click !"); return false; }); $("#press").dblclick(function(event) { event.preventDefault(); $('#log').text("I am double click !"); return false; });

希望我们的堆栈用户能帮助我。

解决问题的方法是使用click事件的超时来为用户提供双击的时间。
如果用户在特定时间范围内点击两次,则为双击,如果用户只点击一次,则为正常点击:

 $('#press').click(function (event) { event.preventDefault(); if ( $(this).data('dblclicked') ) { $('#log').text('No google today!'); clearTimeout( $(this).data('clicked') ); $(this).data('dblclicked', false); }else{ var self = this; $(this).data('dblclicked', true).data('clicked', setTimeout(function() { $('#log').text('google !'); $(self).data('dblclicked', false); },300)); } }); 

小提琴

我得到了最接近的解决方案

 Click here 

我的JavaScript会是,

 var timer; var status = 1; function singleClick(event) { event.preventDefault(); status = 1; timer = setTimeout(function() { if (status == 1) { alert("I am single click !"); document.getElementById("log").innerHTML ='I am single click !'; } }, 500); } function doubleClick(event) { event.preventDefault(); clearTimeout(timer); status = 0; alert("I am double click !"); document.getElementById("log").innerHTML = 'I am a double click!'; }