diff --git a/ChangeLog.markdown b/ChangeLog.markdown index 8d6943cbc..34ee6d966 100644 --- a/ChangeLog.markdown +++ b/ChangeLog.markdown @@ -1,5 +1,12 @@ # Mouse Wheel ChangeLog +# 3.0.1 + +* Fixed delta being opposite value in latest Opera +* No longer fix pageX, pageY for older mozilla browsers +* Removed browser detection + + # 3.0 * Uses new special events API in jQuery 1.2.2+ diff --git a/jquery.mousewheel.js b/jquery.mousewheel.js index c16a3fec8..c4d3378b2 100644 --- a/jquery.mousewheel.js +++ b/jquery.mousewheel.js @@ -4,7 +4,7 @@ * 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-pre + * Version: 3.0.1 * * Requires: 1.2.2+ */ @@ -14,51 +14,35 @@ $.event.special.mousewheel = { setup: function() { var handler = $.event.special.mousewheel.handler; - - // Fix pageX, pageY, clientX and clientY for mozilla - if ( $.browser.mozilla ) - $(this).bind('mousemove.mousewheel', function(event) { - $.data(this, 'mwcursorposdata', { - pageX: event.pageX, - pageY: event.pageY, - clientX: event.clientX, - clientY: event.clientY - }); - }); - if ( this.addEventListener ) - this.addEventListener( ($.browser.mozilla ? 'DOMMouseScroll' : 'mousewheel'), handler, false); - else + if ( this.addEventListener ) { + this.addEventListener( 'DOMMouseScroll', handler, false); + this.addEventListener( 'mousewheel', handler, false); + } else this.onmousewheel = handler; }, teardown: function() { var handler = $.event.special.mousewheel.handler; - $(this).unbind('mousemove.mousewheel'); - - if ( this.removeEventListener ) - this.removeEventListener( ($.browser.mozilla ? 'DOMMouseScroll' : 'mousewheel'), handler, false); - else - this.onmousewheel = function(){}; - - $.removeData(this, 'mwcursorposdata'); + if ( this.removeEventListener ) { + this.removeEventListener( 'DOMMouseScroll', handler, false); + this.removeEventListener( 'mousewheel', handler, false); + } else + this.onmousewheel = null; }, handler: function(event) { - var args = Array.prototype.slice.call( arguments, 1 ); + var args = [].slice.call( arguments, 1 ); event = $.event.fix(event || window.event); - // Get correct pageX, pageY, clientX and clientY for mozilla - $.extend( event, $.data(this, 'mwcursorposdata') || {} ); var delta = 0, returnValue = true; if ( event.wheelDelta ) delta = event.wheelDelta/120; if ( event.detail ) delta = -event.detail/3; - if ( $.browser.opera ) delta = -event.wheelDelta; - event.data = event.data || {}; - event.type = "mousewheel"; + event.data = event.data || {}; + event.type = "mousewheel"; // Add delta to the front of the arguments args.unshift(delta);