Vee*_*era 10 javascript javascript-events backbone.js
在我的Backbone View中,我定义了这样的事件:
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');
}
Run Code Online (Sandbox Code Playgroud)
我已将单击和双击事件侦听器绑定到同一元素.elm.当我双击这个元素时,我得到这个输出:
single clicked
single clicked
double clicked
尝试preventDefault()和stopImmediatePropagation()并没有解决不了的问题.
那么,当我双击时,如何防止单击事件被触发?
在jQuery文档特别建议对你在做什么:
将处理程序绑定到同一元素的
click和dblclick事件是不可取的.触发的事件序列因浏览器而异,其中一些click事件在接收之前接收两个事件dblclick而其他事件仅接收一个事件.双击敏感度(双击检测到的点击之间的最长时间)可能因操作系统和浏览器而异,通常可由用户配置.
你所看到的正是预期的结果(当然取决于浏览器).解决问题的唯一方法是设置计时器并手动区分单击和双击自己; 那么你将不得不调整计时器值并检查各种浏览器和操作系统,直到你得到一些假装在大多数地方工作的东西.
我强烈建议您使用单击操作代替单独的控件.双击是非常不友好的时期,我们只忍受它,因为我们已经习惯了.
| 归档时间: |
|
| 查看次数: |
11350 次 |
| 最近记录: |