Javascript 如何避免特定元素滚动被禁用?
在ipad pro上,我试图在弹出窗口打开时禁用滚动,在弹出窗口关闭时启用向后滚动。 我已经找到了一个完美的解决方案,但它也阻止了内部元素的滚动Javascript 如何避免特定元素滚动被禁用?,javascript,jquery,Javascript,Jquery,在ipad pro上,我试图在弹出窗口打开时禁用滚动,在弹出窗口关闭时启用向后滚动。 我已经找到了一个完美的解决方案,但它也阻止了内部元素的滚动 function preventDefault(e){ e.preventDefault(); } function disableScroll() { document.body.addEventListener('touchmove', preventDefault, { passive: false }); } function enab
function preventDefault(e){
e.preventDefault();
}
function disableScroll() {
document.body.addEventListener('touchmove', preventDefault, { passive: false });
}
function enableScroll() {
document.body.removeEventListener('touchmove', preventDefault);
}
在这里,我在弹出窗口中有一个元素,它是可滚动的,并且具有类名窗口内容。上述解决方案会阻止整个页面的滚动,这意味着它也会阻止弹出窗口内部内容的滚动。
我尝试了下面的代码来允许在pop中滚动,但没有成功
function disableScroll() {
document.body.addEventListener('touchmove', preventDefault, { passive: false });
document.getElementsByClassName('window')[0].getElementsByClassName('window-content')[0].removeEventListener('touchmove', preventDefault);
}
我想允许滚动内弹出窗口,它应该只禁用身体。谢谢。我已更改preventDefault函数以避免使用特定元素
preventDefault: function(e) {
if($(e.target).closest(".k-window").length == 0) {
e.preventDefault();
}
},
现在已经解决了。您可以发布答案并接受自己的答案,而不是为问题添加解决方案(矛盾修饰法)。