如果某个按钮一直都存在(比如在 index.html 中定义的),那么每次在子页面的 onPageInit 事件中绑定该按钮的 click 事件就可能出现重复绑定,例如以下代码:
myApp.onPageInit('list', function (page) {
$$('.popup-district .button').click(function(){
console.log('clicked');
});
});
当多次切换到 list 页面后,在点击该按钮,在浏览器的开发者工具中将同时打印多次 'clicked' 日志。
将事件的方法定义为全局函数可解决次问题:
function clickHandler(){
console.log('clicked');
}
myApp.onPageInit('list', function (page) {
$$('.popup-district .button').click(clickHandler);
});
注:也只有全局性的事件方法绑定才能使用解绑事件:
function clickHandler(){
console.log('clicked');
}
// Add event listener
$$('a').on('click', clickHandler);
// Remove event listener
$$('a').off('click', clickHandler);
评论
wyc 12月09日 18:11
/移除所有事件绑定
app.onPageInit(“*”,function(){
$(“.popup”).off(“click”,”**”);
$(“.modal”).off(“click”,”**”);
$(“.popover”).off(“click”,”**”);
});
preloadPreviousPage:false,//预加载上一页,为了能让”滑动返回上一页”功能正常工作,这个值应该设置为 true。