From 174b29ec35177059c276f05ad34ac78dd32b4f49 Mon Sep 17 00:00:00 2001 From: jung-han Date: Thu, 21 Mar 2019 16:51:26 +0900 Subject: [PATCH 1/3] fix: Select events by using mobile --- src/js/setTouchClickEvent.js | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/js/setTouchClickEvent.js b/src/js/setTouchClickEvent.js index f18a3d2..3c937f3 100644 --- a/src/js/setTouchClickEvent.js +++ b/src/js/setTouchClickEvent.js @@ -5,10 +5,16 @@ 'use strict'; -var snippet = require('tui-code-snippet'); - var $ = require('jquery'); +/** + * Detect mobile browser + * @returns {boolean} Whether using Mobile browser + */ +function _isMobile() { + return /Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile|WPDesktop/i.test(navigator.userAgent); +} + /** * For using one - Touch or Mouse Events * @param {jQuery|string|Element} target - Target element @@ -19,25 +25,17 @@ var $ = require('jquery'); */ module.exports = function(target, handler, option) { var $target = $(target); - var eventList = ['touchend', 'click']; - var selector, namespace, events; + var isMobile = _isMobile(); + var eventType = isMobile ? 'touchend' : 'click'; + var selector, namespace; option = option || {}; selector = option.selector || null; namespace = option.namespace || ''; if (namespace) { - eventList = snippet.map(eventList, function(eventName) { - return eventName + '.' + namespace; - }); + eventType = eventType + '.' + namespace; } - events = eventList.join(' '); - $target.on(events, selector, function onceHandler(ev) { - var newEventName = ev.type + '.' + namespace; - - handler(ev); - $target.off(events, selector, onceHandler) - .on(newEventName, selector, handler); - }); + $target.on(eventType, selector, handler); }; From 605eba0f4c38d8669f0689b20c27592dbea9a292 Mon Sep 17 00:00:00 2001 From: jung-han Date: Mon, 25 Mar 2019 15:47:30 +0900 Subject: [PATCH 2/3] chore: add comment to private method --- src/js/setTouchClickEvent.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/setTouchClickEvent.js b/src/js/setTouchClickEvent.js index 3c937f3..d13359c 100644 --- a/src/js/setTouchClickEvent.js +++ b/src/js/setTouchClickEvent.js @@ -9,6 +9,7 @@ var $ = require('jquery'); /** * Detect mobile browser + * @private * @returns {boolean} Whether using Mobile browser */ function _isMobile() { From 706aa4252934a2e493aa340d16c6c4c980f9c61d Mon Sep 17 00:00:00 2001 From: jung-han Date: Tue, 26 Mar 2019 09:15:00 +0900 Subject: [PATCH 3/3] chore: apply review --- src/js/setTouchClickEvent.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/js/setTouchClickEvent.js b/src/js/setTouchClickEvent.js index d13359c..a41ef99 100644 --- a/src/js/setTouchClickEvent.js +++ b/src/js/setTouchClickEvent.js @@ -12,7 +12,7 @@ var $ = require('jquery'); * @private * @returns {boolean} Whether using Mobile browser */ -function _isMobile() { +function isMobile() { return /Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile|WPDesktop/i.test(navigator.userAgent); } @@ -26,8 +26,7 @@ function _isMobile() { */ module.exports = function(target, handler, option) { var $target = $(target); - var isMobile = _isMobile(); - var eventType = isMobile ? 'touchend' : 'click'; + var eventType = isMobile() ? 'touchend' : 'click'; var selector, namespace; option = option || {};