双击Jquery中的歧义?
我试图在窗口中设置一些文本, single and double click in jquery
。
但我面临double click
的ambiguity
。
尝试double click
,首先single click
function,然后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!'; }