avalon2的ms-on-click指令在iOS 10.0.3的Safari和微信浏览器中绑定非元素不触发事件
代码如下:
<div class="ms-controller" ms-controller="index">
<div>
<div ms-on-click="@click" style="background-color: red; height: 200px;">
</div>
</div>
<div>
<a href="#" ms-on-click="@click">Click</a>
</div>
</div>
<script>
var vm = avalon.define({
$id: "index",
click: function(e) {
e.preventDefault();
console.log('trigger click');
}
});
</script>
结果如下:
点击<a>元素正常触发vm.click方法
点击<div>元素不触发vm.click方法
深入avalon的事件绑定机制,发现是给<html>标签addEventListener监听click事件,然后通过dispatch方法进行事件冒泡触发。
尝试了直接给<html>元素addEventListener监听click事件,同样不触发。
尝试了给<div>元素直接增加onclick事件,可以触发onclick事件,同时也触发了ms-on-click绑定的事件
<div ms-on-click="@click" style="background-color: red; height: 200px;" onclick="console.log(‘trigger click’)">
</div>
有什么解决方案么?PS:我其实知道touchend和tap事件可以解决,只是想深入挖掘click的问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
同样,今天发现10.0.2也是 a标签加click事件无反应
有解决方案了?