繁体   English   中英

如何检查事件是否被触发过一次?

[英]How to check if event was fired once?

我在jQuery中有这样的代码:

$("#something").click(function() {  
};

并且里面的功能,我想检查是否#something在短时间内被点击一次,如果两次以上,那么像一次。

我尝试了这段代码:

if(!event.detail || event.detail == 1) { do_something; }

它适用于除Firefox之外的大多数浏览器。 我知道为什么,但没有发现这方面的任何解决方案。 我在dblclick事件上尝试了preventDefault ,但在Chrome中不起作用...

有任何想法吗?

您可以使用event.timeStamp确定两个事件之间的时间。

$("#something").click(function( event ) {  
    this.lastClick = this.lastClick || 0;

    if( event.timeStamp - this.lastClick > 200 ) {
        // do something
        alert('click');
    } else {
        // last click occured below 200ms, set out `lastClick` to the current timestamp
    }

    this.lastClick = event.timeStamp;
});

我在这里有点草率,将lastClick存储在DOM元素对象表示中。 您可能希望将该变量放在应用程序的更高范围内。

有无赖的方法。

有一个全局变量,

在click事件中,增加它。

当累积了足够的点击次数时,使用$(this)对象从元素中删除click事件。

我修改你的代码了一下,

var counter =0;
$("#something").click(function() {  
counter++;
//alert("Clicked : " + counter);
};

我希望这是了解点击次数的最简单方法。

如果要控制点击,只需检查是否

if(counter >= 1) {...}

我认为这会做的:)

使用.dblclick()(JQUERY)-双击使用.click()(JQUERY)-单击

如果1,2次点击足以完成您的任务-请使用它们。

祝好运。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM