• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

javascript - Window.click 事件不会在 IOS Safari 上触发 - 仅限 JavaScript

[复制链接]
菜鸟教程小白 发表于 2022-12-12 13:18:32 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

原版 javascript -

document.addEventListener("click", function(){ alert('click fired');});

Angular 为 2 + -

 @HostListener('window: click', ['$event'])
        public iosSafariClick(e: any): void {
         alert('event fired');
        }

此方法在 iPad 上的 IOS safari 上均无效。

除非我点击某个按钮、超链接或任何可操作的项目,否则不会触发 Click 事件。

我的目标是在“div 元素”上触发 blur 事件。

为此,我试图检查是否在 HTML 正文上触发了任何点击事件,并检查它是否在“div 元素”上。

HTML >

<html>
  <body>
    <div id= 'menu'>123...</div>
  </body>
</html>

Angular 组件 > typescript >

 @HostListener('window: click', ['$event'])
   public iosSafariClick(e: any): void {
     if(e.target.id !== 'menu'){
       this.menu = false;  // to close menu 
     }        
   }

有没有办法使用 javascript 或 Angular 来克服这个障碍?



Best Answer-推荐答案


使用基于触摸的设备时,向浏览器发出的事件是不同的。 它还为开发人员提供了准确的用例,以便围绕其进行设计和开发。

我会假设既然没有鼠标那么就不会有点击事件。

取自 MDN: 为了为基于触摸的用户界面提供高质量的支持,触摸事件提供了解释触摸屏或触控板上的手指(或触控笔)事件的能力。

尝试使用: document.addEventListener('touchstart', () => console.log('touch called'));

您始终可以选择使用 function () {} 而不是 () => {}

查看完整详情:https://developer.mozilla.org/en/docs/Web/API/Touch_events

关于javascript - Window.click 事件不会在 IOS Safari 上触发 - 仅限 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43335183/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap