Javascript 仅在父级上防止默认值,或更改防止默认值的目标

Javascript 仅在父级上防止默认值,或更改防止默认值的目标,javascript,html,Javascript,Html,我正在收听包含textarea的div(我们称之为scroll\u div)上的scroll事件 在给定的场景中(场景并不重要),我在滚动时执行“e.preventDefault() 当e.target是文本区域时,我不想阻止文本区域内的滚动。。。仅在scroll\u div上显示默认值 我试过: if(e.target.type !== "textarea") { this.preventDefault(e);//Don't scroll } else

我正在收听包含textarea的div(我们称之为scroll\u div)上的scroll事件

在给定的场景中(场景并不重要),我在滚动时执行“e.preventDefault()

当e.target是文本区域时,我不想阻止文本区域内的滚动。。。仅在scroll\u div上显示默认值

我试过:

 if(e.target.type !== "textarea") {
            this.preventDefault(e);//Don't scroll
        } else {
            this.stopPropagation(e);
        }
但是当我这么做的时候,身体在滚动(我不希望它发生)


建议?

您可能正在寻找:

event.stopPropagation();        
阻止当前事件的进一步传播

这将阻止事件在DOM中冒泡。有关这方面的更多详细信息,请参见:

好吧,这样不行-

$('#foo').scroll(function(ev) {
    ev.preventDefault();
});
因为滚动事件发生在滚动上,但不是实际的滚动事件本身。
这称为mousewheel或DOMMouseScroll,具体取决于您的浏览器。这样做:

$('#foo').on('mousewheel DOMMouseScroll', function(ev) {
    ev.preventDefault();
});

应该可以做到这一点。

您可能正在寻找:

event.stopPropagation();        
阻止当前事件的进一步传播

这将阻止事件在DOM中冒泡。有关这方面的更多详细信息,请参见:

好吧,这样不行-

$('#foo').scroll(function(ev) {
    ev.preventDefault();
});
因为滚动事件发生在滚动上,但不是实际的滚动事件本身。
这称为mousewheel或DOMMouseScroll,具体取决于您的浏览器。这样做:

$('#foo').on('mousewheel DOMMouseScroll', function(ev) {
    ev.preventDefault();
});

应该这样做。

在滚动事件中,它没有帮助。是否有任何方法仅在父对象上防止默认值?在滚动事件中,它没有帮助。是否有任何方法仅在父对象上防止默认值?在滚动事件中,它没有帮助。是否有任何方法仅在父对象上防止默认值?可能重复的可能重复可能重复的