2017-04-11 64 views
1

香草的JavaScript -Window.click不会触发事件在IOS野生动物园 - 只有JavaScript

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

与角2 + -

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

这种方法没有对IOS野生动物园工作在iPad上。

除非我点击了一些按钮,超链接,或任何动作项,点击事件不被解雇。

我的目标是激发模糊'div元素'上的事件。

要做到这一点,我试图检查任何点击事件是否在HTML正文上触发,并检查它是否不是'div元素'。

HTML>

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

角度成分>打字稿>

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

是否有使用JavaScript或角度来克服这一障碍什么办法?

+0

是否有人有办法解决这个问题? –

回答

1

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

我会假设,因为没有鼠标那么将不会有点击事件。

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

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

您可以随时选择使用function() {}代替() => {}

查看完整的详细信息:https://developer.mozilla.org/en/docs/Web/API/Touch_events

+0

尝试TouchEnd没有工作。但TouchStart工作得很好。谢了哥们 ! –