首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在iPhone safari上单击奇怪的事件气泡,在冒泡到document.body之前停止。

在iPhone safari上单击奇怪的事件气泡,在冒泡到document.body之前停止。
EN

Stack Overflow用户
提问于 2013-08-30 02:53:54
回答 1查看 3.2K关注 0票数 4

我将单击事件绑定为document.body.onclick =function(){警报(“aaa”)};

无论是在android上还是在IOS上,无论我点击什么元素,它都会做得很好。但是它不会在iPhone safari上触发,同时单击除了一个和img元素以外的元素。

但是它可以在绑定touchstart事件时泡到身体上。

最后,我必须添加到div(#main)以包含我的所有元素,然后在这个div上绑定委托对象。

document.querySelector("#main").onclick =function(){aaa)}

所以我想知道为什么onclick事件会在它泡到身体之前停止。

EN

回答 1

Stack Overflow用户

发布于 2016-12-22 16:12:42

我知道这很古老,但当我遇到同样的问题时,我还是设法把它挖出来了。

简而言之,iOS Safari中的鼠标事件不会冒泡到document.body,除非iOS Safari认为事件目标是一个可点击的元素。

可单击元素是以下内容之一:

  1. 事件的目标元素是链接或表单字段。
  2. 目标元素或其任何到的祖先(但不包括 The <body> )都为任何鼠标事件设置了显式事件处理程序。此事件处理程序可能是空函数。
  3. 目标元素或文档之前的任何祖先都有一个游标:指针CSS声明。

(引用自这里,重点是我。)

可能的解决办法包括:

  • cursor: pointer添加到任何不符合描述的元素中。
  • 向目标添加无操作事件处理程序。
  • 处理document.body下面一个级别的单击。
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18524177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档