【发布时间】:2011-11-15 06:34:07
【问题描述】:
我的鼠标操作触发了 html 和 body 上的自定义功能,但是页面上的滚动条和表单现在对鼠标单击没有响应!
$('html,body').bind('mousedown mouseup mouseover mousemove', function(e){
e.preventDefault(); //this is required :(
customFunction();
});
(为什么我需要阻止默认值?完整的 customFunction here)
如何在保持表单可用和滚动条正常工作的同时保留正文绑定?
我在这里有一个 JSFiddle 演示,准确地展示了正在发生的事情:
http://jsfiddle.net/Ywg9T/
【问题讨论】:
-
做e.preventDefault()的目的是什么?你想防止什么?
-
您可以使用
e.target找出鼠标正下方的内容,并有条件地检查以避免某些元素上的preventDefault。 -
也许
event.stopPropagation()会有所帮助?测试here 看看这是不是你需要的! -
@Ergec:我正在使用自定义光标类(抓手),如果您不阻止默认设置,则在 chrome 中,光标会变成文本选择工具并破坏抓手自定义光标,完全停止脚本。脚本在这里:jsfiddle.net/upEAx
-
@Ben Lee,我是一名初级程序员,您能否提供一个示例以便我更好地理解?谢谢你。也许您甚至可以将其发布为答案。
标签: jquery forms binding jquery-selectors scroll