jQueryMobile动态页面 - 多次触发事件

时间:2013-12-04 20:19:49

标签: javascript jquery jquery-mobile navigation

我正在开发一个让人们订购产品的jQueryMobile网站。有动态页面(例如产品页面),我在那里有一些事件(计算总数,刷新成分列表等)。

首次进入产品页面时,一切正常,但是在购物车中添加产品并返回其他产品后,所有内容都会再次触发。因此,例如,如果您在购物车中添加10个商品,则对于第10个商品,所有内容(包括ajax调用)都会被触发10次。

我在这里录制了一段视频:http://www.screenr.com/Ew5H,因此您可以确切地看到问题。

网址网址为:http://m2.pizzaboy.y11.in/

JS文件在这里:http://m2.pizzaboy.y11.in/assets/js/main.js

我正在使用:

$( document ).delegate("#page-product", "pageinit", function() {
    //stuff here
});

触发产品页面上的所有操作。

我尝试了所有类型的解决方案来解决这个问题(删除不再活动的页面元素,使用标记等),但没有任何效果。

谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

解决方案确实解除了事件的绑定(使用.off),但如果您提供多个选择器,则.off无效(至少对我而言)。

示例:

// This is NOT WORKING because multiple elements are used
$(document).off('change', '.class1, .class2, #idelement');

// This WORKS
$(document).off('change','#idelement');
$(document).off('change','.class1');
// and so on...

// You can add a class to all elements that you want to
// unbind, and then just call it once
$(document).off('event','.classForUnbind')

// If you want to unbind all elements
$(document).off('change');

希望这有帮助