From a5ca78ad2a0fac6fe8f7badec70c3c9bc4448c17 Mon Sep 17 00:00:00 2001 From: Wesley Cho Date: Wed, 6 Jan 2016 20:43:35 -0800 Subject: [PATCH] feat(tooltip): change back to jqLite listeners - Change event listeners to be handled by jqLite Closes #4886 Closes #5157 --- src/tooltip/test/tooltip-template.spec.js | 4 +-- src/tooltip/test/tooltip.spec.js | 24 +++++------------- src/tooltip/test/tooltip2.spec.js | 4 +-- src/tooltip/tooltip.js | 31 ++++++++++------------- 4 files changed, 22 insertions(+), 41 deletions(-) diff --git a/src/tooltip/test/tooltip-template.spec.js b/src/tooltip/test/tooltip-template.spec.js index d0cde43fe4..cec7d4b5cc 100644 --- a/src/tooltip/test/tooltip-template.spec.js +++ b/src/tooltip/test/tooltip-template.spec.js @@ -37,9 +37,7 @@ describe('tooltip template', function() { }); function trigger(element, evt) { - evt = new Event(evt); - - element[0].dispatchEvent(evt); + element.trigger(evt); element.scope().$$childTail.$digest(); } diff --git a/src/tooltip/test/tooltip.spec.js b/src/tooltip/test/tooltip.spec.js index 3508347ce5..b04989ec1e 100644 --- a/src/tooltip/test/tooltip.spec.js +++ b/src/tooltip/test/tooltip.spec.js @@ -31,9 +31,7 @@ describe('tooltip', function() { }); function trigger(element, evt) { - evt = new Event(evt); - - element[0].dispatchEvent(evt); + element.trigger(evt); element.scope().$$childTail.$digest(); } @@ -750,9 +748,7 @@ describe('tooltipWithDifferentSymbols', function() { })); function trigger(element, evt) { - evt = new Event(evt); - - element[0].dispatchEvent(evt); + element.trigger(evt); element.scope().$$childTail.$digest(); } @@ -798,9 +794,7 @@ describe('tooltip positioning', function() { })); function trigger(element, evt) { - evt = new Event(evt); - - element[0].dispatchEvent(evt); + element.trigger(evt); element.scope().$$childTail.$digest(); } @@ -856,9 +850,7 @@ describe('tooltipHtml', function() { })); function trigger(element, evt) { - evt = new Event(evt); - - element[0].dispatchEvent(evt); + element.trigger(evt); element.scope().$$childTail.$digest(); } @@ -897,9 +889,7 @@ describe('$uibTooltipProvider', function() { tooltipScope; function trigger(element, evt) { - evt = new Event(evt); - - element[0].dispatchEvent(evt); + element.trigger(evt); element.scope().$$childTail.$digest(); } @@ -1030,7 +1020,7 @@ describe('$uibTooltipProvider', function() { }); describe('triggers', function() { - describe('triggers with a mapped value', function() { + describe('with a mapped value', function() { beforeEach(module('ui.bootstrap.tooltip', function($uibTooltipProvider) { $uibTooltipProvider.options({trigger: 'focus'}); })); @@ -1077,7 +1067,7 @@ describe('$uibTooltipProvider', function() { })); }); - describe('triggers with a custom mapped value', function() { + describe('with a custom mapped value', function() { beforeEach(module('ui.bootstrap.tooltip', function($uibTooltipProvider) { $uibTooltipProvider.setTriggers({ customOpenTrigger: 'foo bar' }); $uibTooltipProvider.options({trigger: 'customOpenTrigger'}); diff --git a/src/tooltip/test/tooltip2.spec.js b/src/tooltip/test/tooltip2.spec.js index 00573eb733..e8df646479 100644 --- a/src/tooltip/test/tooltip2.spec.js +++ b/src/tooltip/test/tooltip2.spec.js @@ -56,9 +56,7 @@ describe('tooltip directive', function() { } function trigger(element, evt) { - evt = new Event(evt); - - element[0].dispatchEvent(evt); + element.trigger(evt); element.scope().$$childTail.$digest(); } diff --git a/src/tooltip/tooltip.js b/src/tooltip/tooltip.js index e7b922be3c..d6347f3c41 100644 --- a/src/tooltip/tooltip.js +++ b/src/tooltip/tooltip.js @@ -481,20 +481,18 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s var unregisterTriggers = function() { triggers.show.forEach(function(trigger) { if (trigger === 'outsideClick') { - element[0].removeEventListener('click', toggleTooltipBind); + element.off('click', toggleTooltipBind); } else { - element[0].removeEventListener(trigger, showTooltipBind); - element[0].removeEventListener(trigger, toggleTooltipBind); + element.off(trigger, showTooltipBind); + element.off(trigger, toggleTooltipBind); } }); triggers.hide.forEach(function(trigger) { - trigger.split(' ').forEach(function(hideTrigger) { - if (trigger === 'outsideClick') { - $document[0].removeEventListener('click', bodyHideTooltipBind); - } else { - element[0].removeEventListener(hideTrigger, hideTooltipBind); - } - }); + if (trigger === 'outsideClick') { + $document.off('click', bodyHideTooltipBind); + } else { + element.off(trigger, hideTooltipBind); + } }); }; @@ -506,17 +504,14 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s if (triggers.show !== 'none') { triggers.show.forEach(function(trigger, idx) { - // Using raw addEventListener due to jqLite/jQuery bug - #4060 if (trigger === 'outsideClick') { - element[0].addEventListener('click', toggleTooltipBind); - $document[0].addEventListener('click', bodyHideTooltipBind); + element.on('click', toggleTooltipBind); + $document.on('click', bodyHideTooltipBind); } else if (trigger === triggers.hide[idx]) { - element[0].addEventListener(trigger, toggleTooltipBind); + element.on(trigger, toggleTooltipBind); } else if (trigger) { - element[0].addEventListener(trigger, showTooltipBind); - triggers.hide[idx].split(' ').forEach(function(trigger) { - element[0].addEventListener(trigger, hideTooltipBind); - }); + element.on(trigger, showTooltipBind); + element.on(triggers.hide[idx], hideTooltipBind); } element.on('keypress', function(e) {