gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:54:48 25 4
gpt4 key购买 nike

普通 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。

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

我的目标是在“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 来克服这个障碍?

最佳答案

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

我假设因为没有鼠标,所以不会有点击事件。

摘自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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com