由于最近工作项目上使用到前台mui框架,笔者在将H5转换为jsp时,遇见各种各样问题,原因归结为对mui框架不熟悉,今天就遇见一个特别奇怪的问题,界面中超链接<a>标签无法跳转,笔者试着添加点击事件,但效果依然是无法跳转,查资料发现mui搞得鬼;
我的代码主要是下边代码搞得鬼:
//删除出行人
mui('body').on('tap','.business_icon_remove',function(){ var parentNode_1 = this.parentNode, parentNode_2 = parentNode_1.parentNode, removeNode = parentNode_2.parentNode,//获取要删除的节点 fatherNode = removeNode.parentNode;//获取要删除节点的父节点 if (hasClass(removeNode,'mui-media')) { mui.alert('确定要删除该员工?',function(){ fatherNode.removeChild(removeNode); }) }else if(hasClass(removeNode,'business_remove_invoice')){ mui.alert('确定要删除该发票?',function(){ fatherNode.removeChild(removeNode); }) };});
mui('body').on('tap','.business_choose_time',function(){ var set_day = this.getElementsByClassName('business_time_day')[0]; var set_hour = this.getElementsByClassName('business_time_hour')[0]; /* * 首次显示时实例化组件 * 示例为了简洁,将 options 放在了按钮的 dom 上 * 也可以直接通过代码声明 optinos 用于实例化 DtPicker */ //设置日期控件模式 var picker = new mui.DtPicker(); picker.show(function(rs) { /* * rs.value 拼合后的 value * rs.text 拼合后的 text * rs.y 年,可以通过 rs.y.vaue 和 rs.y.text 获取值和文本 * rs.m 月,用法同年 * rs.d 日,用法同年 * rs.h 时,用法同年 * rs.i 分(minutes 的第二个字母),用法同年 */ set_day.innerText = rs.y.text + '-' +rs.m.text + '-' + rs.d.text; set_hour.innerText = rs.h.text + ':' + rs.i.text; /* * 返回 false 可以阻止选择框的关闭 * return false; */ /* * 释放组件资源,释放后将将不能再操作组件 * 通常情况下,不需要示放组件,new DtPicker(options) 后,可以一直使用。 * 当前示例,因为内容较多,如不进行资原释放,在某些设备上会较慢。 * 所以每次用完便立即调用 dispose 进行释放,下次用时再创建新实例。 */ picker.dispose(); }, false); });
其实在这里使用mui框架,来实现界面的数据删除和时间的选择两个功能,添加下边代码就可以解决问题:
mui('body').on('tap','a',function(){
window.top.location.href=this.href; });以上叙述经笔者亲自验证,也可能朋友们是其他原因导致的,但使用mui框架,类似问题,应该都可以解决!