2012-07-04 8 views
9

Bu kod, belgeyi tıklattığımda fare kaydırma işlevselliği devre dışı bırakıldı. Firefox dışındaki tüm tarayıcılarda çalışan bu . lütfen söyle, bu kodu çapraz tarayıcı olarak nasıl yapabilirim?window.onmousewheel

$(document).on("mousewheel DOMMouseScroll", function(e){ 
    e.preventDefault(); 
}); 

cevap

14

, bunun yerine DOMMouseScroll olay kullanmak zorunda. Bunun yerine DOMMouseScroll olayı ile yapmanız gerekir. yapabilirsiniz böylece, belge hep bağlamak için hazır olacaktır:

var cancelscroll = function(e) { 
    e.preventDefault(); 
}; 

if ("onmousewheel" in document) { 
    document.onmousewheel = cancelscroll; 
} else { 
    document.addEventListener('DOMMouseScroll', cancelscroll, false); 
} 

Not DOM hazır bunu yapmak gerekmez:

desteklenir onmousewheel, böyle bir şey yapabilir algılamak için hemen yap.


Her durumda olay dinleyicisinin nasıl kaldırılacağını sorun. Benzer bir koşullu hile olacaktır:

if ("onmousewheel" in document) { 
    document.onmousewheel = function() {}; 
} else { 
    document.removeEventListener('DOMMouseScroll', cancelscroll, false); 
} 
+0

Ben gibi 1.7 veya daha ileride desteklendiği gibi .bind veya .one kullanılmasını öneririm –

6

Firefox bu etkinlik için onmousewheel adını desteklemez: Firefox .onmousewheel desteklemediği

İlgili konular