我正在侦听包含textarea的div上的滚动事件(让我们将其命名为scroll_div)。
在给定的场景中(场景并不重要)我在滚动时执行“e.preventDefault()”。
当e.target是textarea时,我不想阻止textarea内的滚动...只是为了防止scroll_div上的默认值。
我试过了:
if(e.target.type !== "textarea") {
this.preventDefault(e);//Don't scroll
} else {
this.stopPropagation(e);
}
但是当我这样做时 - 身体在滚动(我不希望它发生)
建议?
答案 0 :(得分:0)
您可能正在寻找:
event.stopPropagation();
防止进一步传播当前事件。
这应该可以阻止事件冒泡DOM。有关这方面的更多详细信息,请访问此处 - https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation
好的,所以这不起作用 -
$('#foo').scroll(function(ev) {
ev.preventDefault();
});
因为滚动事件发生在滚动上,但不是实际的滚动事件本身 这称为mousewheel或DOMMouseScroll,具体取决于您的浏览器。这样做:
$('#foo').on('mousewheel DOMMouseScroll', function(ev) {
ev.preventDefault();
});
应该这样做。