我在Framework7中有一个HTML页面posts.html。这是posts.html部分的JS代码。
myApp.onPageInit('posts', function (page) {
openPostsPageFromDB(function(html){
html = '<ul>'+html+'</ul>';
$$(".posts-page div.posts").html(html);
pageJS();
});
});
function pageJS(){
$$(".post a,.post .post-channel-image,.post #tags").on("click",function(e){
e.stopPropagation();
});
}
openPostsPageFromDB在从DB中获取值后返回HTML内容。我用相应的返回值替换posts.html的HTML内容,然后调用pageJS()来覆盖HTML中某些元素的click事件处理程序。
但是,事件没有被覆盖,并且在Framework7中默认定义的事件处理程序被触发。有没有解决这个问题?
答案 0 :(得分:1)
jQuery方法.on("click",function(e){})
只是将另一个事件侦听器添加到元素的事件侦听器队列中。因此,在您的情况下,如果您想取消所有点击事件监听器,您需要这样的东西:
.unbind('click');
更新#1
从jQuery 1.7开始,unbind
方法已被删除,因此您应该使用off
方法。
.off('click');