我正在尝试禁用除一个div以外的滚动,这是一个模式弹出窗口。在电话上,它超出了屏幕的底部,因此我只需要该div,我们将为此呼叫#div100
。
我确定一旦有了这个,只要模式关闭,我就可以解除绑定以重新启用滚动。
除一格外,如何禁用滚动?
的HTML
<html>
<body>
<div id="container">
<div id="div1">...</div>
<div id="div100">...</div>
<div id="div3">...</div>
</div>
<div id="upper-div">...</div>
</body>
</html>
JS
$('.button').bind("click touchend", function(){
$('div').not('#div100').bind('touchmove', false);
});
我当时想通过调用
div
而不是body
或html
会更容易,但是我不介意使用body
或html
是否更容易 最佳答案
我建议采用一种略有不同的方法:选择HTML querySelectorAll("*")
的每个元素都应执行此操作,然后遍历并在每个元素上绑定“ touchmove”,“ false”。然后,选择#div100,然后将其解除绑定。
您可能需要精确调整应用“ querySelectorAll”的元素,因为将某些绑定到#div100祖先的东西可能传播到#div100。因此,document.querySelectorAll
可能不是最好的地方,而是#div100的parentNode,所以只有#div100的兄弟姐妹可以达到此限制。当然,使用jquery可以使用所需的任何方法选择元素。我只引用querySelectorAll,因为我经常在香草中使用它。
编辑:
尝试这样的事情:
$("container").each(function(){
$(this).bind('touchmove', false);
}
$("#div100").bind('touchmove', true);
或者,您可以执行以下操作:
$("container").each(function(){
if ($(this)!=$("#div100")){
$(this).bind('touchmove', false);
}
}
两种方法都应该起作用。请原谅我的语法,我对jquery并不十分熟悉。
关于javascript - 如何选择除一个div以外的整个html,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22703454/