我正在为我的所有交互式按钮元素使用vmouseup事件处理程序 jQuery mobile + Phonegap应用程序。
例如,检查以下代码。
$('#sBtn').live('vmouseup', function (event) {
event.preventDefault();
event.stopImmediatePropagation();
alert("Inside Function");
})
这里发生的事情是,该事件在基于Android的触摸屏手机中发射了两次(得到两个“内部功能”警报)。 怎么预防这个?或者避免这种情况的最佳方法是什么?
注意:我尝试了event.preventDefault()和event.stopImmediateProbagtion(),但即使我遇到了同样的问题。任何人都可以请点击后面发生的事情,以及点击后如何禁用按钮。
我也试过了$('#sBtn').off('vmouseup').on( 'vmouseup', function (event) {})
,但没有运气。任何人都可以建议/建议我该怎样做以防止这种情况......?
答案 0 :(得分:0)
嘿我认为问题在于您使用的是live()
来自jquery stopImmediatePropagation。
附加说明:
由于 .live()方法在传播后处理事件 文档的顶部,无法阻止传播 现场活动。同样,.delegate()处理的事件也会传播 他们被委派的要素;事件处理程序绑定 DOM树下面的任何元素都已经被执行了 到调用委托事件处理程序时。这些处理程序, 因此,可能会阻止委托的处理程序触发 调用event.stopPropagation()或返回false。
尝试将其更改为其他内容(bind
或on
),您似乎无法按原样停止传播。