2017-04-11 32 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工作得很好。謝了哥們 ! –