iPad - touchStart() 事件被 div 文本阻止

Posted

技术标签:

【中文标题】iPad - touchStart() 事件被 div 文本阻止【英文标题】:iPad - touchStart() event blocked by div text 【发布时间】:2011-07-09 22:35:13 【问题描述】:

我有一个触发 touchStart 事件的 div:

<div class="button" ontouchstart="touchStart(event)"> button</div>

当我的手指落在div内的文本按钮上时,事件不会被触发,div事件表面上的其他任何地方都会被触发,我怎样才能让它在我触摸文本时也触发?

【问题讨论】:

【参考方案1】:

如果您知道 div 的大小,那么您可以使用 ontouchstart 事件在文本上方添加一个透明 div。

<div class="buttoncontainer">
    <div class="button"> button</div>
    <div  ontouchstart="touchStart(event)" class="somethingrelative"></div>
</div>

buttoncontainer 和相关的东西有助于定位。

【讨论】:

【参考方案2】:

您还可以将文本放在另一个元素中,例如跨度,并使其对事件无反应:

.button span   
    pointer-events: none;

【讨论】:

以上是关于iPad - touchStart() 事件被 div 文本阻止的主要内容,如果未能解决你的问题,请参考以下文章

iPad 上的 HTML5 视频元素不会触发 onclick 或 touchstart 事件?

jQuery 解除绑定事件

js的touchstart没有触发

触摸事件仅在iPad iOS 11.4上的Mobile Safari中滚动时触发“一次”

移动 safari 上的 touchMove 事件 - 导致整个页面被拖动

移动端touch事件和click事件的区别