From 09bbcc5ad9289519abe2d63c86fb2020309c1b30 Mon Sep 17 00:00:00 2001
From: Gabriel Schulhof
Date: Mon, 28 Apr 2014 23:05:24 +0300
Subject: [PATCH 1/2] Swipe: Keep swiperight when tearing down swipeleft and
vice versa
Fixes gh-7351
---
js/events/touch.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/js/events/touch.js b/js/events/touch.js
index 37458e9e457..dfa2e0cc81f 100644
--- a/js/events/touch.js
+++ b/js/events/touch.js
@@ -313,8 +313,8 @@ define( [ "jquery", "../vmouse", "../support/touch" ], function( jQuery ) {
$.each({
scrollstop: "scrollstart",
taphold: "tap",
- swipeleft: "swipe",
- swiperight: "swipe"
+ swipeleft: "swipe.left",
+ swiperight: "swipe.right"
}, function( event, sourceEvent ) {
$.event.special[ event ] = {
From e475b8f80e12703141b9ab5c48ea8f0f50c80b1f Mon Sep 17 00:00:00 2001
From: Gabriel Schulhof
Date: Mon, 28 Apr 2014 23:45:42 +0300
Subject: [PATCH 2/2] Swipe: Ensure a binding is left after detaching swipeleft
or swiperight
---
tests/integration/swipe/binding-tests.html | 39 +++++++++++++++++++
tests/integration/swipe/binding_tests_core.js | 39 +++++++++++++++++++
2 files changed, 78 insertions(+)
create mode 100644 tests/integration/swipe/binding-tests.html
create mode 100644 tests/integration/swipe/binding_tests_core.js
diff --git a/tests/integration/swipe/binding-tests.html b/tests/integration/swipe/binding-tests.html
new file mode 100644
index 00000000000..81420e5c751
--- /dev/null
+++ b/tests/integration/swipe/binding-tests.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+ jQuery Mobile Swipe Event Test Suite
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/integration/swipe/binding_tests_core.js b/tests/integration/swipe/binding_tests_core.js
new file mode 100644
index 00000000000..2cad6a5ef3a
--- /dev/null
+++ b/tests/integration/swipe/binding_tests_core.js
@@ -0,0 +1,39 @@
+test( "Unbinding swipeleft leaves swiperight handler alone", function() {
+ var dummy = function() {},
+ swipeLength = function() {
+ var swipe = $._data( document, "events" ).swipe;
+
+ return swipe ? swipe.length : 0;
+ },
+ initialSwipeLength = swipeLength();
+
+ $( document ).on( "swipeleft swiperight", ".ui-page", dummy );
+
+ deepEqual( swipeLength(), initialSwipeLength + 2,
+ "Two swipe handlers are present after attaching swipeleft and swiperight" );
+
+ $( document ).off( "swipeleft", ".ui-page", dummy );
+
+ deepEqual( swipeLength(), initialSwipeLength + 1,
+ "One swipe handler is present after detaching swipeleft" );
+
+ $( document ).on( "swipeleft", ".ui-page", dummy );
+
+ deepEqual( swipeLength(), initialSwipeLength + 2,
+ "Two swipe handlers are present after reattaching swipeleft" );
+
+ $( document ).off( "swiperight", ".ui-page", dummy );
+
+ deepEqual( swipeLength(), initialSwipeLength + 1,
+ "One swipe handler is present after detaching swiperight" );
+
+ $( document ).on( "swiperight", ".ui-page", dummy );
+
+ deepEqual( swipeLength(), initialSwipeLength + 2,
+ "Two swipe handlers are present after reattaching swiperight" );
+
+ $( document ).off( "swipeleft swiperight", ".ui-page", dummy );
+
+ deepEqual( swipeLength(), initialSwipeLength,
+ "No swipe handlers are present after detaching both swipeleft and swiperight" );
+});