From ee95cf659436c5e1f184e398316bbc23915e5091 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Fiedler?= Date: Sat, 23 Nov 2013 13:45:22 +0100 Subject: [PATCH 1/4] issues 15 - allow element instead of selector argument --- source/tappable.js | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/source/tappable.js b/source/tappable.js index 66c4fab..4d2807e 100644 --- a/source/tappable.js +++ b/source/tappable.js @@ -76,15 +76,25 @@ return matches.call(node, selector); }, closest = function(node, selector){ - var matches = false; - do { - matches = matchesSelector(node, selector); - } while (!matches && (node = node.parentNode) && node.ownerDocument); - return matches ? node : false; + if (typeof selector === 'string') { + var matches = false; + do { + matches = TappableHelper.matchesSelector(node, selector); + } while (!matches && (node = node.parentNode) && node.ownerDocument); + return matches ? node : false; + } else { + if (node === selector || selector.contains(node)) { + return selector; + } + return false; + } }; w.tappable = function(selector, opts){ - if (typeof opts == 'function') opts = { onTap: opts }; + if (typeof selector === 'undefined') { + return; + } + if (typeof opts === 'function') opts = { onTap: opts }; var options = {}; for (var key in defaults) options[key] = opts[key] || defaults[key]; From 3ec210f348a85ac7ae5aa4d02b5d7b3092e1aa8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Fiedler?= Date: Sat, 23 Nov 2013 13:57:30 +0100 Subject: [PATCH 2/4] some cleanup --- source/tappable.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/source/tappable.js b/source/tappable.js index 4d2807e..94467b2 100644 --- a/source/tappable.js +++ b/source/tappable.js @@ -14,6 +14,8 @@ var abs = Math.abs, noop = function(){}, + dEl = d.documentElement, + matchesSelector = dEl.matchesSelector || dEl.mozMatchesSelector || dEl.webkitMatchesSelector || dEl.oMatchesSelector || dEl.msMatchesSelector, defaults = { noScroll: false, activeClass: 'tappable-active', @@ -70,16 +72,11 @@ } el.className = el.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)'), '$1'); }, - matchesSelector = function(node, selector){ - var root = d.documentElement, - matches = root.matchesSelector || root.mozMatchesSelector || root.webkitMatchesSelector || root.oMatchesSelector || root.msMatchesSelector; - return matches.call(node, selector); - }, closest = function(node, selector){ if (typeof selector === 'string') { var matches = false; do { - matches = TappableHelper.matchesSelector(node, selector); + matches = matchesSelector(node, selector); } while (!matches && (node = node.parentNode) && node.ownerDocument); return matches ? node : false; } else { From 2488cffac34256246db3e0abeb80e4bf063c5050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Fiedler?= Date: Sat, 23 Nov 2013 15:36:15 +0100 Subject: [PATCH 3/4] fixed matchesSelector --- source/tappable.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/tappable.js b/source/tappable.js index 94467b2..e0ee61d 100644 --- a/source/tappable.js +++ b/source/tappable.js @@ -15,7 +15,7 @@ var abs = Math.abs, noop = function(){}, dEl = d.documentElement, - matchesSelector = dEl.matchesSelector || dEl.mozMatchesSelector || dEl.webkitMatchesSelector || dEl.oMatchesSelector || dEl.msMatchesSelector, + matchesSelectorFn = dEl.matchesSelector || dEl.mozMatchesSelector || dEl.webkitMatchesSelector || dEl.oMatchesSelector || dEl.msMatchesSelector, defaults = { noScroll: false, activeClass: 'tappable-active', @@ -72,6 +72,9 @@ } el.className = el.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)'), '$1'); }, + matchesSelector: function (node, selector) { + return matchesSelectorFn.call(node, selector); + }, closest = function(node, selector){ if (typeof selector === 'string') { var matches = false; From 76e0801fd19bab31e459e147d7ef305d7882f761 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Fiedler?= Date: Sat, 23 Nov 2013 15:42:11 +0100 Subject: [PATCH 4/4] fixed typo --- source/tappable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/tappable.js b/source/tappable.js index e0ee61d..ba99816 100644 --- a/source/tappable.js +++ b/source/tappable.js @@ -72,7 +72,7 @@ } el.className = el.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)'), '$1'); }, - matchesSelector: function (node, selector) { + matchesSelector = function (node, selector) { return matchesSelectorFn.call(node, selector); }, closest = function(node, selector){