在 framework7 中覆盖 javascript

override javascript in framework7

我在 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 returns HTML 从数据库获取值后的内容。我将 posts.html 的 HTML 内容替换为相应的 return 值,然后调用 pageJS() 以覆盖 HTML 中某些元素的点击事件处理程序。

但是,事件没有被覆盖,并且 Framework7 中默认定义的事件处理程序被触发。有什么解决办法吗?

jQuery 方法 .on("click",function(e){}) 只是将另一个事件侦听器添加到元素的事件侦听器队列中。所以,在你的情况下,如果你想取消所有的点击事件监听器,你需要这样的东西:

.unbind('click');

更新#1

从 jQuery 1.7 开始,unbind 方法已被删除,因此您应该改用 off 方法。

.off('click');