javascript - 仅在 "body"元素上禁用拖动?

标签 javascript jquery ios

在 iOS 上,我想禁用 <body> 上的滚动仅元素,而不是 <body> 中的元素元素。以下代码将禁用拖动 <body>元素,但也防止拖拽子 div:

$("body").bind("touchstart", function(e) {
    e.preventDefault();
});

这是否只影响父 div,而不影响父 div 中的子 div (<body>)?我想也许$("#yourdiv").parent()会工作,但没有运气。

编辑:这个链接虽然解决了同样的问题,但没有解决我的问题:prevent app dragging but permit scroll of inner div elements in ios

最佳答案

$("body").bind("touchstart", function(e) {
    if(e.target.nodeName === "BODY"){
       e.preventDefault();
    }
});

您可以检查事件的 target - 不能 100% 确定这在 iOS 上是如何进行的,但我认为应该没问题。

另一种可能性是首先阻止事件传播。

$("*:not(body)").bind('touchstart', function(e){
  e.stopPropagation();
});

但这只是一个想法,我也不完全确定它是否可行。

关于javascript - 仅在 "body"元素上禁用拖动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12756476/

相关文章:

javascript - 每 5 秒在浏览器中使用不同参数打开链接

ios - railscasts.com 之类的 iOS 5 编程站点

javascript - 如何阻止谷歌验证码执行?

javascript - 分析 Chrome 应用程序

javascript - 为什么这个 javascript 插入两个微调图像?

javascript - $script.js 嵌套依赖项

javascript - 将 HTML 文件对象从一个 &lt;input type = file> 传递到另一个

ios - RestKit 重新上线时自动 POST/PUT

ios - 如何修复iOS设备中flutter应用程序的安装?

javascript - React-Native 将带有 XHR 的图像文件发送到 Api 后端