From b7c35896a59d0d7054e401f87743f161e66f7a1f Mon Sep 17 00:00:00 2001 From: brandonaaron Date: Sun, 22 Mar 2009 00:04:05 -0500 Subject: [PATCH] cleaned up the code --- ChangeLog.markdown | 10 ++++++-- jquery.mousewheel.js | 61 ++++++++++++++++++++------------------------ test/index.html | 2 +- 3 files changed, 36 insertions(+), 37 deletions(-) diff --git a/ChangeLog.markdown b/ChangeLog.markdown index 21dca47f4..8dd106beb 100644 --- a/ChangeLog.markdown +++ b/ChangeLog.markdown @@ -1,11 +1,17 @@ # Mouse Wheel ChangeLog -# 3.0.1 -* Normalize event.currentTarget +# 3.0.2 + * Fixed delta being opposite value in latest Opera * No longer fix pageX, pageY for older mozilla browsers * Removed browser detection +* Cleaned up the code + + +# 3.0.1 + +* Bad release... creating a new release due to plugins.jquery.com issue :( # 3.0 diff --git a/jquery.mousewheel.js b/jquery.mousewheel.js index 22ec183a4..b6b89ba60 100644 --- a/jquery.mousewheel.js +++ b/jquery.mousewheel.js @@ -4,53 +4,30 @@ * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. * - * Version: 3.0.1 + * Version: 3.0.2 * * Requires: 1.2.2+ */ (function($) { +var types = ['DOMMouseScroll', 'mousewheel']; + $.event.special.mousewheel = { setup: function() { - var handler = $.event.special.mousewheel.handler; - - if ( this.addEventListener ) { - this.addEventListener( 'DOMMouseScroll', handler, false); - this.addEventListener( 'mousewheel', handler, false); - } else + if ( this.addEventListener ) + for ( var i=types.length; i; ) + this.addEventListener( types[--i], handler, false ); + else this.onmousewheel = handler; }, teardown: function() { - var handler = $.event.special.mousewheel.handler; - - if ( this.removeEventListener ) { - this.removeEventListener( 'DOMMouseScroll', handler, false); - this.removeEventListener( 'mousewheel', handler, false); - } else + if ( this.removeEventListener ) + for ( var i=types.length; i; ) + this.removeEventListener( types[--i], handler, false ); + else this.onmousewheel = null; - }, - - handler: function(event) { - var args = [].slice.call( arguments, 1 ); - - event = $.event.fix(event || window.event); - event.currentTarget = this; - var delta = 0, returnValue = true; - - if ( event.wheelDelta ) delta = event.wheelDelta/120; - if ( event.detail ) delta = -event.detail/3; - - event.data = event.data || {}; - event.type = "mousewheel"; - - // Add delta to the front of the arguments - args.unshift(delta); - // Add event to the front of the arguments - args.unshift(event); - - return $.event.handle.apply(this, args); } }; @@ -64,4 +41,20 @@ $.fn.extend({ } }); + +function handler(event) { + var args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true; + + event = $.event.fix(event || window.event); + event.type = "mousewheel"; + + if ( event.wheelDelta ) delta = event.wheelDelta/120; + if ( event.detail ) delta = -event.detail/3; + + // Add events and delta to the front of the arguments + args.unshift(event, delta); + + return $.event.handle.apply(this, args); +} + })(jQuery); \ No newline at end of file diff --git a/test/index.html b/test/index.html index 7da710dc3..ce716a40e 100644 --- a/test/index.html +++ b/test/index.html @@ -165,7 +165,7 @@ }); function log(msg) { - $('#logger').append(msg+'
'); + $('#logger').append(msg+'
').scrollTop(999999); }; });