簡體   English   中英

iPhone Safari游戲中的奇怪點擊事件泡泡,它在冒泡到document.body之前停止

[英]Strange Click Event Bubble on iPhone safari that it stop before bubbling to document.body

我將click事件綁定為document.body.onclick = function(){alert(“aaa”)};

無論我點擊什么元素,它都可以在IOS上的android或chrome上做得很好。 但是在點擊除a和img元素之外的元素時,它不會觸發iPhone Safari。

但它可以在綁定touchstart事件時冒泡到正文。

最后,我必須添加到div(#main)以包含我的所有元素,然后綁定此div上的委托對象。

document.querySelector(“#main”)。onclick = function(){alert(“aaa”)}

所以我徘徊為什么onclick事件在它冒泡到身體之前就停止了。

我知道這已經很老了,但是當我遇到同樣的問題時,我仍然設法把它挖出來。

簡而言之,除非iOS Safari認為事件目標是可點擊元素,否則iOS Safari中的鼠標事件不會冒泡到document.body

可點擊元素是以下之一:

  1. 事件的目標元素是鏈接或表單字段。

  2. 目標元素或其任何祖先( 但不包括 <body> )具有為任何鼠標事件設置的顯式事件處理程序。 此事件處理程序可能是一個空函數。

  3. 目標元素或其任何祖先(包括文檔)都有一個游標:指針CSS聲明。

(引自這里 ,強調我的。)

可能的修復包括:

  • 添加cursor: pointer任何不符合描述的元素的cursor: pointer
  • 向目標添加no-op事件處理程序。
  • 處理document.body一級的點擊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM