From 1e735c49c01b3ced478399a87749fa447d1a27e3 Mon Sep 17 00:00:00 2001 From: rajbot Date: Wed, 8 Dec 2010 20:53:55 +0000 Subject: [PATCH] fix mouse handlers on IE8. --- BookReader/BookReader.js | 49 ++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 15 deletions(-) diff --git a/BookReader/BookReader.js b/BookReader/BookReader.js index fe73264..671cffd 100644 --- a/BookReader/BookReader.js +++ b/BookReader/BookReader.js @@ -3901,14 +3901,6 @@ BookReader.prototype.bindNavigationHandlers = function() { $('.BRpageimage').die('mousedown.swipe').live('mousedown.swipe', { 'br': this }, this.swipeMousedownHandler - ) - .die('mousemove.swipe').live('mousemove.swipe', - { 'br': this }, - this.swipeMousemoveHandler - ) - .die('mouseup.swipe').live('mouseup.swipe', - { 'br': this }, - this.swipeMouseupHandler ); this.bindMozTouchHandlers(); @@ -3961,17 +3953,34 @@ BookReader.prototype.initSwipeData = function(clientX, clientY) { BookReader.prototype.swipeMousedownHandler = function(event) { //console.log('swipe mousedown'); //console.log(event); + + // We should be the last bubble point for the page images + // Disable image drag and select, but keep right-click + if (event.which == 3) { + return true; + } var self = event.data['br']; + + $(event.target).bind('mouseout.swipe', + { 'br': self}, + self.swipeMouseupHandler + ).bind('mouseup.swipe', + { 'br': self}, + self.swipeMouseupHandler + ).bind('mousemove.swipe', + { 'br': self }, + self.swipeMousemoveHandler + ); + self.initSwipeData(event.clientX, event.clientY); self._swipe.mightBeSwiping = true; self._swipe.mightBeDragging = true; - // We should be the last bubble point for the page images - // Disable image drag and select, but keep right-click - if ($(event.originalTarget).hasClass('BRpageimage') && event.button != 2) { - event.preventDefault(); - } + event.preventDefault(); + event.returnValue = false; + event.cancelBubble = true; + return false; } BookReader.prototype.swipeMousemoveHandler = function(event) { @@ -4020,19 +4029,29 @@ BookReader.prototype.swipeMousemoveHandler = function(event) { } _swipe.lastX = event.clientX; _swipe.lastY = event.clientY; + + event.preventDefault(); + event.returnValue = false; + event.cancelBubble = true; + return false; } BookReader.prototype.swipeMouseupHandler = function(event) { var _swipe = event.data['br']._swipe; //console.log('swipe mouseup - did swipe ' + _swipe.didSwipe); _swipe.mightBeSwiping = false; _swipe.mightBeDragging = false; + + $(event.target).unbind('mouseout.swipe').unbind('mouseup.swipe').unbind('mousemove.swipe'); + if (_swipe.didSwipe || _swipe.didDrag) { // Swallow event if completed swipe gesture event.preventDefault(); - event.stopPropagation(); + event.returnValue = false; + event.cancelBubble = true; + return false; } + return true; } - BookReader.prototype.bindMozTouchHandlers = function() { var self = this; -- 2.20.1