jquery mobile vmouse up事件处理程序被解雇了两次

时间:2013-04-25 20:14:35

标签: jquery jquery-mobile

我正在为我的所有交互式按钮元素使用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) {}),但没有运气。任何人都可以建议/建议我该怎样做以防止这种情况......?

1 个答案:

答案 0 :(得分:0)

嘿我认为问题在于您使用的是live()

来自jquery stopImmediatePropagation。

  

附加说明:

     

由于 .live()方法在传播后处理事件   文档的顶部,无法阻止传播   现场活动。同样,.delegate()处理的事件也会传播   他们被委派的要素;事件处理程序绑定   DOM树下面的任何元素都已经被执行了   到调用委托事件处理程序时。这些处理程序,   因此,可能会阻止委托的处理程序触发   调用event.stopPropagation()或返回false。

尝试将其更改为其他内容(bindon),您似乎无法按原样停止传播。