iOS Touch 事件在 DOM 插入时传递
iOS Touch event passes through on DOM insertion
在iPad和iOS UIWebView上的移动野生动物园中,我看到了以下行为。
我有一个页面,它使用 javascript 替换了 DOM 元素的内容。第一页有一个按钮,按下该按钮将从容器元素中删除所有元素,并将一组新的 html 插入到容器中。
问题是,当按下按钮并切换出 html 时,触摸事件会传递到新插入的 html 页面。 就我而言,我们在第二页上有一个文本输入,与第一页上的按钮位于同一位置。因此,当按下按钮时,触摸事件会通过并将焦点放在文本输入上,软键盘就会出现。
有没有人详细说明为什么会发生这种情况或我如何防止此问题或此问题的任何解决方法?
在iPad上查看下面的链接,您将看到我在说什么。它似乎不会发生在"点击"事件中,但"touchstart"和"touchstop"都会发生这种情况。
http://jsfiddle.net/tcollins/BtmyD/embedded/result/
.HTML
<h3>Touch Start</h3>
<div id="container2">
<button id="theButton2">Press Me</button>
</div>
JAVASCRIPT
$('#theButton2').bind('touchstart', function(){
var html = '<input type="text">';
$('#container2').empty().append(html);
});
您是否尝试过在追加之前添加evt.preventDefault();
和evt.stopPropagation();
?这样:
$('#theButton2').bind('touchstart', function(evt){ evt.preventDefault(); evt.stopPropagation(); var html = ''; $('#container2').empty().append(html); });
可悲的是,我没有iPhone,所以我不进行测试,但它应该阻止事件传播。
相关文章:
- 预加载图像并插入DOM
- 如何从动态属性将IMG插入DOM
- 如何在不插入 dom 的情况下加载 mbox 内容
- jQuery .on() 脚本插入 DOM 时未绑定
- 确定图像未插入 DOM 时的宽度和高度
- 将JavaScript文件插入DOM中(方法比较)
- Javascript-从URL中获取多个图像的信息,然后将它们插入DOM
- 如何使非事件javascript指令在插入DOM元素后工作
- 当通过jQuery插入DOM时,什么时候应该将HTML字符串包装在单个元素中
- 当使用jQuery插入DOM时,JavaScript不会执行
- 保存已插入DOM的jquery对象
- 用于在客户端上存储html字符串以供以后插入DOM
- javascript模板是否仅适用于将小项目插入DOM
- 将元素插入DOM,位置基于时间戳
- 当反应元素插入DOM-Meteor时,突出显示它们
- 将样式元素动态插入DOM的最后一种跨浏览器方式
- 有没有比insertAdjacentHTML()和一个巨大的HTML字符串更好的方法将HTML插入DOM中
- 插入DOM时IE冻结GIF动画
- 创建图像,大小相对于窗口宽度.插入DOM时没有绘制图像
- jQuery中包含的脚本标签在插入DOM时不会被AJAX响应计算