覆盖framework7中的javascript

时间:2015-12-28 06:59:03

标签: javascript jquery cordova html-framework-7

我在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中默认定义的事件处理程序被触发。有没有解决这个问题?

1 个答案:

答案 0 :(得分:1)

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

.unbind('click');

更新#1

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

.off('click');