1- /*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
1+ /*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)
22 * Licensed under the MIT License (LICENSE.txt).
33 *
44 * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
55 * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
66 * Thanks to: Seamus Leahy for adding deltaX and deltaY
77 *
8- * Version: 3.0.4
9- *
8+ * Version: 3.0.6
9+ *
1010 * Requires: 1.2.2+
1111 */
1212
1313( function ( $ ) {
1414
1515var types = [ 'DOMMouseScroll' , 'mousewheel' ] ;
1616
17+ if ( $ . event . fixHooks ) {
18+ for ( var i = types . length ; i ; ) {
19+ $ . event . fixHooks [ types [ -- i ] ] = $ . event . mouseHooks ;
20+ }
21+ }
22+
1723$ . event . special . mousewheel = {
1824 setup : function ( ) {
1925 if ( this . addEventListener ) {
@@ -24,7 +30,7 @@ $.event.special.mousewheel = {
2430 this . onmousewheel = handler ;
2531 }
2632 } ,
27-
33+
2834 teardown : function ( ) {
2935 if ( this . removeEventListener ) {
3036 for ( var i = types . length ; i ; ) {
@@ -40,7 +46,7 @@ $.fn.extend({
4046 mousewheel : function ( fn ) {
4147 return fn ? this . bind ( "mousewheel" , fn ) : this . trigger ( "mousewheel" ) ;
4248 } ,
43-
49+
4450 unmousewheel : function ( fn ) {
4551 return this . unbind ( "mousewheel" , fn ) ;
4652 }
@@ -51,28 +57,28 @@ function handler(event) {
5157 var orgEvent = event || window . event , args = [ ] . slice . call ( arguments , 1 ) , delta = 0 , returnValue = true , deltaX = 0 , deltaY = 0 ;
5258 event = $ . event . fix ( orgEvent ) ;
5359 event . type = "mousewheel" ;
54-
60+
5561 // Old school scrollwheel delta
56- if ( event . wheelDelta ) { delta = event . wheelDelta / 120 ; }
57- if ( event . detail ) { delta = - event . detail / 3 ; }
58-
62+ if ( orgEvent . wheelDelta ) { delta = orgEvent . wheelDelta / 120 ; }
63+ if ( orgEvent . detail ) { delta = - orgEvent . detail / 3 ; }
64+
5965 // New school multidimensional scroll (touchpads) deltas
6066 deltaY = delta ;
61-
67+
6268 // Gecko
6369 if ( orgEvent . axis !== undefined && orgEvent . axis === orgEvent . HORIZONTAL_AXIS ) {
6470 deltaY = 0 ;
6571 deltaX = - 1 * delta ;
6672 }
67-
73+
6874 // Webkit
6975 if ( orgEvent . wheelDeltaY !== undefined ) { deltaY = orgEvent . wheelDeltaY / 120 ; }
7076 if ( orgEvent . wheelDeltaX !== undefined ) { deltaX = - 1 * orgEvent . wheelDeltaX / 120 ; }
71-
77+
7278 // Add event and delta to the front of the arguments
7379 args . unshift ( event , delta , deltaX , deltaY ) ;
74-
75- return $ . event . handle . apply ( this , args ) ;
80+
81+ return ( $ . event . dispatch || $ . event . handle ) . apply ( this , args ) ;
7682}
7783
7884} ) ( jQuery ) ;
0 commit comments