avalon2的ms-on-click指令在iOS 10.0.3的Safari和微信浏览器中绑定非元素不触发事件

发布于 2022-09-04 10:03:07 字数 1029 浏览 11 评论 0

代码如下:

<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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

简单气质女生网名 2022-09-11 10:03:07

同样,今天发现10.0.2也是 a标签加click事件无反应

匿名的好友 2022-09-11 10:03:07

有解决方案了?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文