我有一个小"浮动工具箱" - 一个div与position:fixed; overflow:auto.工作得很好.
但是当在该框内滚动(使用鼠标滚轮)并到达底部或顶部时,父元素"接管""滚动请求":工具框后面的文档滚动.
- 哪个很烦人而不是用户"要求".
我正在使用jQuery并认为我可以使用event.stoppropagation()来阻止此行为:
$("#toolBox").scroll( function(event){ event.stoppropagation() });
它确实进入了函数,但仍然无论如何传播(文档滚动)
- 在SO(和Google)上搜索这个主题非常困难,所以我不得不问:
如何防止滚动事件的传播/冒泡?
编辑:
工作解决方案感谢amustill(以及Brandon Aaron的mousewheel-plugin:https:
//github.com/brandonaaron/jquery-mousewheel/raw/master/jquery.mousewheel.js
$(".ToolPage").bind('mousewheel', function(e, d)
var t = $(this);
if (d > 0 && t.scrollTop() === 0) {
e.preventDefault();
}
else {
if (d < 0 && (t.scrollTop() == t.get(0).scrollHeight - t.innerHeight())) {
e.preventDefault();
}
}
});
Run Code Online (Sandbox Code Playgroud) 我有一个包含一个iframe一个模式对话框窗口(弹出),
以及里面的iframe有一个DIV是滚动的.
当我滚动iframe的内部DIV,并且它已达到其上限或下限时,
浏览器本身的窗口开始滚动.这是一种不受欢迎的行为.
我尝试过这样的东西,当
onMouseEnter鼠标进入弹出框区域时会杀死主窗口滚动:
e.preventDefault()由于某种原因不能正常工作......
$("#popup").mouseenter(function(){
$(window).bind("scroll", function(e){
e.preventDefault();
});
}).mouseleave(function(){
$(window).unbind("scroll");
});
Run Code Online (Sandbox Code Playgroud)
好像现在在2013年e.preventDefault();就够了......
我正在构建面向Android用户的移动网络应用.我需要知道哪些DOM事件可供我使用.我已经能够完成以下工作,但不是非常可靠:
我无法让以下工作:
有没有人知道支持的内容的完整列表以及在什么情况下(例如,onchange只能用于表单输入?)?我在谷歌上找不到这方面的参考.
谢谢!
更新:我在Android开发人员列表中问了同样的问题.我将做更多的测试,并将在这里和那里发布我的结果.