我正试图在single and double click in jquery窗口中设置一些文本。
但我现在面对的是ambiguity for double click。
当尝试执行double click时,首先single click函数工作,然后double click工作。
类似的问题在这里,检查这里和它是非常古老的。而且它也有一些问题。
任何使用最新jquery版本的新答案。
查看我的问题 现场演示的现场演示
这是我的密码
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<a id="press" href="http://jquery.com">Click here</a>
<div id="log"></div>
<script>
$("#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;
});
</script>
</body>
</html>希望我们的堆栈用户能帮我。
发布于 2013-10-15 06:57:41
我得到了最近的解决方案,
<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!';
}发布于 2013-07-29 10:38:21
解决问题的方法是为click事件使用一个超时,为用户提供doubleclick的时间。
如果用户在特定时间范围内单击两次,则为doubleclick,如果用户只单击一次,则为正常单击:
$('#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));
}
});小提琴
https://stackoverflow.com/questions/17921556
复制相似问题