我在jQuery中有这样的代码:
$("#something").click(function() {
};
和内部函数我想检查#something
在短时间内是否只被点击过一次,如果是两次或更多次,那就行动一次。
我试过这段代码:
if(!event.detail || event.detail == 1) { do_something; }
它适用于除Firefox以外的大多数浏览器。我知道为什么,但没有找到任何解决方案。我在preventDefault
事件上尝试了dblclick
,但它在Chrome中无效...
有什么想法吗?
答案 0 :(得分:0)
您可以使用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元素对象表示中。您可能希望将该变量放在应用程序的更高范围内。
答案 1 :(得分:0)
这种做法很流行。
拥有一个全局变量,
在click事件中,递增它。
如果累积了足够的点击次数,请使用$(this)
对象
答案 2 :(得分:0)
我正在修改你的代码,
var counter =0;
$("#something").click(function() {
counter++;
//alert("Clicked : " + counter);
};
我希望这是了解它点击次数的最简单方法。
如果想要控制点击次数,只需检查是否
if(counter >= 1) {...}
我认为这样做:)
答案 3 :(得分:-1)
使用.dblclick()(JQUERY) - 双击 使用.click()(JQUERY) - 单击
如果您的任务非常适合1,2次点击 - 请使用它们。
祝你好运。