在 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');
我在 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');