【发布时间】:2012-01-20 01:43:53
【问题描述】:
- 我有一个单页应用程序。
- 它使用backbone.js。
- 通过鼠标触发单击事件一次。
- 通过触摸设备触发两次点击事件。
- 取消绑定一键事件在触摸设备上都停止。
我不知道从哪里开始寻找。
这是JS:
$('.classy').on('click', 'button', function(){
console.log('clicked');
})
我需要一些帮助来弄清楚如何解决这个问题。我知道我没有提供足够的信息来获得真正的答案。令我困惑的是,这只发生在触摸设备上。如果我不小心绑定了两个事件或创建了同一视图的两个实例,那么鼠标点击也不会发生这种情况吗?
谢谢。
编辑:我尝试通过 jQuery Mobile 使用点击事件。这引起了奇怪的反应。它会触发一次事件并且看起来已经完成了,但是下次您触摸屏幕上的任何位置时,它会再次触发该事件。 ...奇怪,有什么想法吗?
我终于找到了问题所在。它来自分层 iScrolls。此时我不得不破解库,这可能是解决此问题的更好方法,但说明了这一点。
if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA' && window.iScrollClickFIX != true) {
window.iScrollClickFIX = true;
setTimeout(function(){
window.iScrollClickFIX = false;
}, 1)
感谢大家的帮助。
【问题讨论】:
-
您是否尝试过删除
'click'或'button'看看会发生什么? -
我试过 .click .bind .live - 它们的行为方式都一样。
标签: javascript jquery