android浏览器中 MUI 点击事件不触发的解决方法

在使用MUI框架的时候发现, onclick事件在电脑浏览器中可以正常触发, 但是在android浏览器上点击的时候, 出现了点击事件不触发的问题.

后来在网上找到了如下解决方法, 确实可以解决点击事件不触发的问题(这个解决方法在高版本手机上有问题, 详见后面的描述):

mui('body').on('tap', 'a', function () {
	var str = this.onclick;
	str = String(str);
	/*
	例如:onclick='alert("Hello")';
	转换成的字符串内容大概是:
	function click(event){
		alert("Hello")
	}
	所以,需要做一些截取。
	*/
	var functionString = str.substr(28, str.length - 29);
	// 执行就好了
	eval(functionString);
});

但是, 上述方法在高版本(具体版本没有看, 目前主要是华为P20, MATE 20, 小米8SE等)都再次出现点击事件没效果的问题.

后来排查, 其实上述事件触发了, 但是在解析onclick字符串内容的时候, 格式发生了变化, 导致eval里面的字符串不正确.

所以更换了获取点击事件并执行的方法如下(需要jquery支持):

mui('body').on('tap', 'a', function () {
	eval($(this).attr('onclick'));
});

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值