event.wheelDelta 返回未定义 [英] event.wheelDelta returns undefined
问题描述
所以我试图在我的灯箱打开时禁用我的页面上的滚动,我发现这个非常有用的脚本正是这样做的.(http://jsfiddle.net/mrtsherman/eXQf3/3/),不幸的是,当我在我的自己的页面,它也禁用了我的灯箱中的滚动.我开始用警报调试代码只是为了发现 event.wheelDelta 在我的页面上返回未定义",而在 JSFiddle,返回-120.
So I'm trying to disable scrolling on my page when my lightbox opens, and I found this really usefull script that does exactly that. (http://jsfiddle.net/mrtsherman/eXQf3/3/), unfortunately, when I use it on my own page, it disabled scrolling in my lightbox as well. I started to debug the code with alerts only to find out that event.wheelDelta returns "undefined" on my page, while in the JSFiddle, it returns -120.
推荐答案
jQuery 事件处理程序中的 event
对象不反映真实事件.wheelDelta
是一个非标准的事件属性IE和Opera,可以通过jQuery事件的originalEvent
属性获得.
The event
object in a jQuery event handler does not reflect the real event. wheelDelta
is a non-standard event propertyIE and Opera, available through the originalEvent
property of the jQuery event.
在 jQuery 1.7+ 中,detail
属性在 jQuery 事件对象中不可用.因此,您还应该在 DOMMouseScroll
事件中使用 event.originalEvent.detail
来设置此属性.此方法向后兼容较旧的 jQuery 版本.
In jQuery 1.7+, the detail
property is not available at the jQuery Event object. So, you should also use event.originalEvent.detail
to for this property at the DOMMouseScroll
event. This method is backwards-compatible with older jQuery versions.
event.originalEvent.wheelDelta
演示:http://jsfiddle.net/eXQf3/22/
另见:http://api.jquery.com/category/events/event-object/
这篇关于event.wheelDelta 返回未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!