当我单击文档时,此代码禁用了鼠标滚动功能。
$(document).on("click", function () {
window.onmousewheel = function (e) {
e.preventDefault();
}
});
但是,这适用于除 Firefox 之外的所有浏览器。请告诉,如何使这段代码成为跨浏览器?
当我单击文档时,此代码禁用了鼠标滚动功能。
$(document).on("click", function () {
window.onmousewheel = function (e) {
e.preventDefault();
}
});
但是,这适用于除 Firefox 之外的所有浏览器。请告诉,如何使这段代码成为跨浏览器?
Firefox 不支持.onmousewheel
,您必须改用该DOMMouseScroll
事件:
$(document).on( "mousewheel DOMMouseScroll", function(e){
e.preventDefault();
});
Firefox 不支持onmousewheel
此事件的名称。你需要用DOMMouseScroll
事件来代替它。
要检测是否onmousewheel
支持,您可以执行以下操作:
var cancelscroll = function(e) {
e.preventDefault();
};
if ("onmousewheel" in document) {
document.onmousewheel = cancelscroll;
} else {
document.addEventListener('DOMMouseScroll', cancelscroll, false);
}
请注意,您无需在 DOM 就绪时执行此操作:文档将始终可以绑定到,因此您可以立即执行此操作。
您询问如何在每种情况下删除事件侦听器。类似的条件可以解决问题:
if ("onmousewheel" in document) {
document.onmousewheel = function() {};
} else {
document.removeEventListener('DOMMouseScroll', cancelscroll, false);
}
您可以使用(新)标准化事件wheel
。文件:
我发现这适用于 OSX (10.9.3) 上的 Firefox v29.0.1 和 Chrome v35.0.1916.114,但不适用于 Safari v7.0.4。