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 *
7- * Version: 3.0.1
7+ * Version: 3.0.2
88 *
99 * Requires: 1.2.2+
1010 */
1111
1212( function ( $ ) {
1313
14+ var types = [ 'DOMMouseScroll' , 'mousewheel' ] ;
15+
1416$ . event . special . mousewheel = {
1517 setup : function ( ) {
16- var handler = $ . event . special . mousewheel . handler ;
17-
18- if ( this . addEventListener ) {
19- this . addEventListener ( 'DOMMouseScroll' , handler , false ) ;
20- this . addEventListener ( 'mousewheel' , handler , false ) ;
21- } else
18+ if ( this . addEventListener )
19+ for ( var i = types . length ; i ; )
20+ this . addEventListener ( types [ -- i ] , handler , false ) ;
21+ else
2222 this . onmousewheel = handler ;
2323 } ,
2424
2525 teardown : function ( ) {
26- var handler = $ . event . special . mousewheel . handler ;
27-
28- if ( this . removeEventListener ) {
29- this . removeEventListener ( 'DOMMouseScroll' , handler , false ) ;
30- this . removeEventListener ( 'mousewheel' , handler , false ) ;
31- } else
26+ if ( this . removeEventListener )
27+ for ( var i = types . length ; i ; )
28+ this . removeEventListener ( types [ -- i ] , handler , false ) ;
29+ else
3230 this . onmousewheel = null ;
33- } ,
34-
35- handler : function ( event ) {
36- var args = [ ] . slice . call ( arguments , 1 ) ;
37-
38- event = $ . event . fix ( event || window . event ) ;
39- event . currentTarget = this ;
40- var delta = 0 , returnValue = true ;
41-
42- if ( event . wheelDelta ) delta = event . wheelDelta / 120 ;
43- if ( event . detail ) delta = - event . detail / 3 ;
44-
45- event . data = event . data || { } ;
46- event . type = "mousewheel" ;
47-
48- // Add delta to the front of the arguments
49- args . unshift ( delta ) ;
50- // Add event to the front of the arguments
51- args . unshift ( event ) ;
52-
53- return $ . event . handle . apply ( this , args ) ;
5431 }
5532} ;
5633
@@ -64,4 +41,20 @@ $.fn.extend({
6441 }
6542} ) ;
6643
44+
45+ function handler ( event ) {
46+ var args = [ ] . slice . call ( arguments , 1 ) , delta = 0 , returnValue = true ;
47+
48+ event = $ . event . fix ( event || window . event ) ;
49+ event . type = "mousewheel" ;
50+
51+ if ( event . wheelDelta ) delta = event . wheelDelta / 120 ;
52+ if ( event . detail ) delta = - event . detail / 3 ;
53+
54+ // Add events and delta to the front of the arguments
55+ args . unshift ( event , delta ) ;
56+
57+ return $ . event . handle . apply ( this , args ) ;
58+ }
59+
6760} ) ( jQuery ) ;
0 commit comments