Firefox không hỗ trợ tên onmousewheel
cho sự kiện này. Thay vào đó, bạn cần phải thực hiện điều đó với sự kiện DOMMouseScroll
.
Để phát hiện xem onmousewheel
được hỗ trợ, bạn có thể làm một cái gì đó như thế này:
var cancelscroll = function(e) {
e.preventDefault();
};
if ("onmousewheel" in document) {
document.onmousewheel = cancelscroll;
} else {
document.addEventListener('DOMMouseScroll', cancelscroll, false);
}
Lưu ý rằng bạn không cần phải làm điều này trên DOM đã sẵn sàng: tài liệu sẽ luôn luôn có sẵn để ràng buộc, vì vậy bạn có thể làm điều đó ngay lập tức.
Bạn hỏi cách xóa trình xử lý sự kiện trong từng trường hợp. Một điều kiện tương tự sẽ thực hiện thủ thuật:
if ("onmousewheel" in document) {
document.onmousewheel = function() {};
} else {
document.removeEventListener('DOMMouseScroll', cancelscroll, false);
}
cho những người sử dụng các phiên bản 1.7 hoặc ít hơn của jQuery tôi khuyên bạn nên sử dụng .bind hoặc .one thay vì bật như trên chỉ được hỗ trợ trong 1.7 và hơn thế nữa –