【发布时间】:2012-03-18 04:13:22
【问题描述】:
我正在为 iPad 创建一个小型 Web 应用程序,并且我有几个元素通过阻止 touchmove 事件的默认设置来阻止用户滚动。但是,我有一种情况需要用户能够滚动子元素。
我曾尝试使用 e.stopPropagation();但没有运气!我还尝试检测手指下的元素并将 e.preventDefault();在 if 语句中,但同样没有运气。或者也许我只是搞混了......
有什么想法吗?从#fix div 中删除 .scroll div 确实是最后的手段,因为它会引起各种头痛。
编辑
我设法对其进行了排序。好像我不明白 .stopPropagation(); 的用法哎呀!
工作代码:
<div id="fix">
<h1>Hi there</h1>
<div class="scroll">
<ul>
<li>List item</li>
<li>List item</li>
<li>List item</li>
</ul>
</div>
<div class="scroll">
<ul>
<li>List item</li>
<li>List item</li>
<li>List item</li>
</ul>
</div>
</div>
还有 Javascript:
$('body').delegate('#fix','touchmove',function(e){
e.preventDefault();
}).delegate('.scroll','touchmove',function(e){
e.stopPropagation();
});
【问题讨论】:
-
尝试添加 return false;在事件处理程序结束时
-
写 stopPropagation 而不是 stopPropogation
-
哈,是的,谢天谢地,我实际上在我的代码中输入正确;)
-
您应该将您的解决方案添加为答案并接受,它对我有用。谢谢!
-
我很困惑,你到底是怎么解决这个问题的?对于像我这样的麻木,你能指出哪个是工作代码吗?哈哈谢谢:)
标签: javascript jquery ipad touch