首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >双击Jquery中的歧义?

双击Jquery中的歧义?
EN

Stack Overflow用户
提问于 2013-07-29 10:23:29
回答 2查看 1.4K关注 0票数 3

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

但我现在面对的是ambiguity for double click

当尝试执行double click时,首先single click函数工作,然后double click工作。

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

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

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

这是我的密码

代码语言:javascript
复制
<!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>

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-15 06:57:41

我得到了最近的解决方案

代码语言:javascript
复制
<a id="press" href="javascript:void(0)" onclick="singleClick(event)"
    ondblclick="doubleClick(event)">Click here</a>

<div id="log"></div>

我的JavaScript

代码语言: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!';
}
票数 0
EN

Stack Overflow用户

发布于 2013-07-29 10:38:21

解决问题的方法是为click事件使用一个超时,为用户提供doubleclick的时间。

如果用户在特定时间范围内单击两次,则为doubleclick,如果用户只单击一次,则为正常单击:

代码语言:javascript
复制
$('#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));
    }
});

小提琴

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17921556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档