0

我在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 内容。我将 post.html 的 HTML 内容替换为相应的返回值,然后调用 pageJS() 以覆盖 HTML 中某些元素的单击事件处理程序。

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

4

1 回答 1

1

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

.unbind('click');

更新#1

自 jQuery 1.7 起,该unbind方法已被弃用,因此您应该改用offmethod.

.off('click');
于 2015-12-28T08:03:00.773 回答