我正在尝试在single and double click in jquery
的窗口中设置一些文字。
但我面对ambiguity
的{{1}}。
尝试执行double click
时,首先double click
功能有效,然后single click
有效。
类似的问题在这里check here并且它已经很老了。它也有一些问题。
使用最新jquery版本的任何新答案。
在此处查看我的问题的实时演示 live demo
这是我的代码,
double click
希望我们的堆栈用户能帮助我。
答案 0 :(得分:4)
解决问题的方法是使用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));
}
});
答案 1 :(得分:0)
我得到了最接近的解决方案,
<a id="press" href="javascript:void(0)" onclick="singleClick(event)"
ondblclick="doubleClick(event)">Click here</a>
<div id="log"></div>
我的 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!';
}