Javascript Backbone.js-在元素上触发单击和双击事件
在我的主干视图中,我定义了如下事件:Javascript Backbone.js-在元素上触发单击和双击事件,javascript,javascript-events,backbone.js,Javascript,Javascript Events,Backbone.js,在我的主干视图中,我定义了如下事件: events : { 'click .elm' : 'select', 'dblclick .elm' : 'toggle' }, select: function(e){ e.preventDefault(); console.log('single clicked'); } toggle : function(e){ e.preventDefault(); console.log('double clicke
events : {
'click .elm' : 'select',
'dblclick .elm' : 'toggle'
},
select: function(e){
e.preventDefault();
console.log('single clicked');
}
toggle : function(e){
e.preventDefault();
console.log('double clicked');
}
我已将单点和双击事件侦听器绑定到同一元素.elm
。当我双击此元素时,我得到以下输出:
单击一次
单击一次
双击
尝试了preventDefault()
和stopImmediatePropagation()
,但没有解决问题
那么,如何防止双击时触发单点事件?尝试添加
返回false代码>在选择和切换的末尾。这不是主干本身的问题。
它是关于如何在同一个按钮上处理单点和双击事件
看
更新:但如果你不必处理它,那就更好了。看下面 特别建议您不要这样做:
不建议将处理程序绑定到同一元素的click
和dblclick
事件。触发的事件顺序因浏览器而异,一些浏览器在dblclick
之前接收两个单击事件,而另一些浏览器仅接收一个。双击灵敏度(检测为双击的最大点击间隔时间)可能因操作系统和浏览器而异,并且通常是用户可配置的
您看到的正是预期的(当然取决于浏览器)。解决问题的唯一方法是设置一个计时器并手动区分单击和双击;然后,你必须调整计时器的值,检查各种浏览器和操作系统,直到你得到一些在大多数情况下都能正常工作的东西
我强烈建议您使用单独的控件来执行单击操作。双击是非常不友好的时期,我们只是因为习惯了而忍受它。hmm。然后我必须更改我的应用程序行为。