我有鼠标操作触发html和body上的自定义函数,但是滚动条和页面上的表单现在对鼠标点击没有反应!
$('html,body').bind('mousedown mouseup mouseover mousemove', function(e){
e.preventDefault(); //this is required :(
customFunction();
});
(为什么我需要防止默认?完全自定义功能here)
如何在保持表单可用和滚动条功能的同时保留正文绑定?
我在这里有一个 JSFiddle演示,准确显示正在发生的事情:
http://jsfiddle.net/Ywg9T/
答案 0 :(得分:2)
这是jQuery中的一个错误,与启动选择的事件有关。它过于频繁地发射。有一张票,并计划在1.8中修复。在此期间,您可以通过hackily删除该事件处理程序来修复此问题(其中'element'是您要禁用它的元素 - 在您的情况下,整个文档):
element.onselectstart = function () { return false; };
然后你不必做preventDefault
。所以,你的代码看起来像这样:
document.onselectstart = function () { return false; };
(function($){
var drag = false;
$("#click").bind('mousedown mouseup mouseover mousemove', function(e) {
if(e.type === 'mouseover'){ ... }
if(e.type === 'mousemove'){ ... }
if(e.type === 'mousedown'){ ... }
if(e.type === 'mouseup'){ ... }
});
})(jQuery);