From 1d5bc48439ccc1c1790b709534f5289f44bf2848 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Erard?= Date: Tue, 25 Mar 2014 11:35:53 +0100 Subject: [PATCH 1/2] Update swipe.js Adding possibility to bind and unbind events. --- swipe.js | 104 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 61 insertions(+), 43 deletions(-) diff --git a/swipe.js b/swipe.js index 8b29717..4e1d945 100644 --- a/swipe.js +++ b/swipe.js @@ -434,39 +434,75 @@ function Swipe(container, options) { } } - - // trigger setup - setup(); - - // start auto slideshow if applicable - if (delay) begin(); - - - // add event listeners - if (browser.addEventListener) { - - // set touchstart event on element - if (browser.touch) element.addEventListener('touchstart', events, false); - - if (browser.transitions) { - element.addEventListener('webkitTransitionEnd', events, false); - element.addEventListener('msTransitionEnd', events, false); - element.addEventListener('oTransitionEnd', events, false); - element.addEventListener('otransitionend', events, false); - element.addEventListener('transitionend', events, false); + + + function bindEvents() { + // add event listeners + if (browser.addEventListener) { + + // set touchstart event on element + if (browser.touch) element.addEventListener('touchstart', events, false); + + if (browser.transitions) { + element.addEventListener('webkitTransitionEnd', events, false); + element.addEventListener('msTransitionEnd', events, false); + element.addEventListener('oTransitionEnd', events, false); + element.addEventListener('otransitionend', events, false); + element.addEventListener('transitionend', events, false); + } + + // set resize event on window + window.addEventListener('resize', events, false); + + } else { + + window.onresize = function () { setup() }; // to play nice with old IE + } + } + + function unbindEvents(){ + // removed event listeners + if (browser.addEventListener) { - // set resize event on window - window.addEventListener('resize', events, false); + // remove current event listeners + element.removeEventListener('touchstart', events, false); + element.removeEventListener('webkitTransitionEnd', events, false); + element.removeEventListener('msTransitionEnd', events, false); + element.removeEventListener('oTransitionEnd', events, false); + element.removeEventListener('otransitionend', events, false); + element.removeEventListener('transitionend', events, false); + window.removeEventListener('resize', events, false); - } else { + } + else { - window.onresize = function () { setup() }; // to play nice with old IE + window.onresize = null; + } } + // trigger setup + setup(); + + // start auto slideshow if applicable + if (delay) begin(); + + // bind events + bindEvents(); + // expose the Swipe API return { + bindEvents: function(){ + + bindEvents(); + + } + unbindEvents: function(){ + + unbindEvents(); + + }, setup: function() { setup(); @@ -534,25 +570,7 @@ function Swipe(container, options) { } - // removed event listeners - if (browser.addEventListener) { - - // remove current event listeners - element.removeEventListener('touchstart', events, false); - element.removeEventListener('webkitTransitionEnd', events, false); - element.removeEventListener('msTransitionEnd', events, false); - element.removeEventListener('oTransitionEnd', events, false); - element.removeEventListener('otransitionend', events, false); - element.removeEventListener('transitionend', events, false); - window.removeEventListener('resize', events, false); - - } - else { - - window.onresize = null; - - } - + unbindEvents(); } } From e5e3db945fbfd7cc1da20ab7e241938af4908deb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Erard?= Date: Fri, 28 Mar 2014 14:40:05 +0100 Subject: [PATCH 2/2] Update swipe.js Fix previous commit errors --- swipe.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/swipe.js b/swipe.js index 4e1d945..a408eb7 100644 --- a/swipe.js +++ b/swipe.js @@ -495,6 +495,8 @@ function Swipe(container, options) { return { bindEvents: function(){ + // unbinding before binding avoids double-binding + unbindEvents(); bindEvents(); }