【发布时间】:2013-05-24 18:38:52
【问题描述】:
我了解到,当您在 jQuery Mobile 中创建侦听器时:
$('.this-class').on('swipe',tapHandler);
tapHandler 将运行两次。为了消除这个问题,我看到了多种解决方案,例如:
$('.page-card').off('swipe').on('swipe',tapHandler);
或
如果您在pagebeforeshow 中创建动态内容,请将其包装在pageinit 的一侧,以消除抖动问题,如here 所示。
我也明白,甚至冒泡也在这里发挥作用。
但是,我希望有人能解释为什么这个 known 存在,以及为什么 jQuery 的贡献者决定走这条路,知道它的缺点。
【问题讨论】:
-
你确定不绑定两次吗? AFAIR,我从来没有遇到过滑动事件的这个问题。
-
是的,我确定我没有绑定两次。第一个代码示例只找到一次。
tapHandler()函数中唯一的东西是console.log('trigger');每次我滑动都会收到两次“触发”消息。
标签: javascript jquery-mobile jquery jquery-on