Skip to content
This repository was archived by the owner on May 29, 2019. It is now read-only.

Commit a5ca78a

Browse files
committed
feat(tooltip): change back to jqLite listeners
- Change event listeners to be handled by jqLite Closes #4886 Closes #5157
1 parent d320df8 commit a5ca78a

File tree

4 files changed

+22
-41
lines changed

4 files changed

+22
-41
lines changed

src/tooltip/test/tooltip-template.spec.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,7 @@ describe('tooltip template', function() {
3737
});
3838

3939
function trigger(element, evt) {
40-
evt = new Event(evt);
41-
42-
element[0].dispatchEvent(evt);
40+
element.trigger(evt);
4341
element.scope().$$childTail.$digest();
4442
}
4543

src/tooltip/test/tooltip.spec.js

+7-17
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ describe('tooltip', function() {
3131
});
3232

3333
function trigger(element, evt) {
34-
evt = new Event(evt);
35-
36-
element[0].dispatchEvent(evt);
34+
element.trigger(evt);
3735
element.scope().$$childTail.$digest();
3836
}
3937

@@ -750,9 +748,7 @@ describe('tooltipWithDifferentSymbols', function() {
750748
}));
751749

752750
function trigger(element, evt) {
753-
evt = new Event(evt);
754-
755-
element[0].dispatchEvent(evt);
751+
element.trigger(evt);
756752
element.scope().$$childTail.$digest();
757753
}
758754

@@ -798,9 +794,7 @@ describe('tooltip positioning', function() {
798794
}));
799795

800796
function trigger(element, evt) {
801-
evt = new Event(evt);
802-
803-
element[0].dispatchEvent(evt);
797+
element.trigger(evt);
804798
element.scope().$$childTail.$digest();
805799
}
806800

@@ -856,9 +850,7 @@ describe('tooltipHtml', function() {
856850
}));
857851

858852
function trigger(element, evt) {
859-
evt = new Event(evt);
860-
861-
element[0].dispatchEvent(evt);
853+
element.trigger(evt);
862854
element.scope().$$childTail.$digest();
863855
}
864856

@@ -897,9 +889,7 @@ describe('$uibTooltipProvider', function() {
897889
tooltipScope;
898890

899891
function trigger(element, evt) {
900-
evt = new Event(evt);
901-
902-
element[0].dispatchEvent(evt);
892+
element.trigger(evt);
903893
element.scope().$$childTail.$digest();
904894
}
905895

@@ -1030,7 +1020,7 @@ describe('$uibTooltipProvider', function() {
10301020
});
10311021

10321022
describe('triggers', function() {
1033-
describe('triggers with a mapped value', function() {
1023+
describe('with a mapped value', function() {
10341024
beforeEach(module('ui.bootstrap.tooltip', function($uibTooltipProvider) {
10351025
$uibTooltipProvider.options({trigger: 'focus'});
10361026
}));
@@ -1077,7 +1067,7 @@ describe('$uibTooltipProvider', function() {
10771067
}));
10781068
});
10791069

1080-
describe('triggers with a custom mapped value', function() {
1070+
describe('with a custom mapped value', function() {
10811071
beforeEach(module('ui.bootstrap.tooltip', function($uibTooltipProvider) {
10821072
$uibTooltipProvider.setTriggers({ customOpenTrigger: 'foo bar' });
10831073
$uibTooltipProvider.options({trigger: 'customOpenTrigger'});

src/tooltip/test/tooltip2.spec.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,7 @@ describe('tooltip directive', function() {
5656
}
5757

5858
function trigger(element, evt) {
59-
evt = new Event(evt);
60-
61-
element[0].dispatchEvent(evt);
59+
element.trigger(evt);
6260
element.scope().$$childTail.$digest();
6361
}
6462

src/tooltip/tooltip.js

+13-18
Original file line numberDiff line numberDiff line change
@@ -481,20 +481,18 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s
481481
var unregisterTriggers = function() {
482482
triggers.show.forEach(function(trigger) {
483483
if (trigger === 'outsideClick') {
484-
element[0].removeEventListener('click', toggleTooltipBind);
484+
element.off('click', toggleTooltipBind);
485485
} else {
486-
element[0].removeEventListener(trigger, showTooltipBind);
487-
element[0].removeEventListener(trigger, toggleTooltipBind);
486+
element.off(trigger, showTooltipBind);
487+
element.off(trigger, toggleTooltipBind);
488488
}
489489
});
490490
triggers.hide.forEach(function(trigger) {
491-
trigger.split(' ').forEach(function(hideTrigger) {
492-
if (trigger === 'outsideClick') {
493-
$document[0].removeEventListener('click', bodyHideTooltipBind);
494-
} else {
495-
element[0].removeEventListener(hideTrigger, hideTooltipBind);
496-
}
497-
});
491+
if (trigger === 'outsideClick') {
492+
$document.off('click', bodyHideTooltipBind);
493+
} else {
494+
element.off(trigger, hideTooltipBind);
495+
}
498496
});
499497
};
500498

@@ -506,17 +504,14 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s
506504

507505
if (triggers.show !== 'none') {
508506
triggers.show.forEach(function(trigger, idx) {
509-
// Using raw addEventListener due to jqLite/jQuery bug - #4060
510507
if (trigger === 'outsideClick') {
511-
element[0].addEventListener('click', toggleTooltipBind);
512-
$document[0].addEventListener('click', bodyHideTooltipBind);
508+
element.on('click', toggleTooltipBind);
509+
$document.on('click', bodyHideTooltipBind);
513510
} else if (trigger === triggers.hide[idx]) {
514-
element[0].addEventListener(trigger, toggleTooltipBind);
511+
element.on(trigger, toggleTooltipBind);
515512
} else if (trigger) {
516-
element[0].addEventListener(trigger, showTooltipBind);
517-
triggers.hide[idx].split(' ').forEach(function(trigger) {
518-
element[0].addEventListener(trigger, hideTooltipBind);
519-
});
513+
element.on(trigger, showTooltipBind);
514+
element.on(triggers.hide[idx], hideTooltipBind);
520515
}
521516

522517
element.on('keypress', function(e) {

0 commit comments

Comments
 (0)