页面展示
问题描述
在开发微信公众号网页时,使用了 mui 框架的 pullRefresh 插件上拉加载更多时候,发现对于新添加的数据元素中,点击a标签进行跳转无效。
原因分析
折腾了好久,最后在窗口管理发现mui本身面向的是移动app的开发,对于页面的跳转使用的是tap事件监听,至于click事件使用了fastclick,防止点击穿透问题,所以mui事件管理支持中没有click事件。而且进一步查看mui.js源码可以看到封装了事件委托对象绑定的事件回调,其中就包括了tap, 注意下面代码颜色较深的地方
对于阻止链接跳转,一般两种方式
- return false;之后的所有触发事件和动作都不会被执行
- 传参调用js事件阻止, e.preventDefault()
解决方法
在页面js中添加如下代码
mui('body').on('tap','a',function(){
document.location.href=this.href;
});