Skip to content

Commit fe0f0d7

Browse files
committed
maint(pat tooltip): Use add_event_listener from core.events which better handles double registrations and makes it easier to unregister event handlers.
1 parent a0ba74b commit fe0f0d7

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

src/pat/tooltip/tooltip.js

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import $ from "jquery";
33
import Base from "../../core/base";
44
import logging from "../../core/logging";
55
import Parser from "../../core/parser";
6+
import events from "../../core/events";
67
import registry from "../../core/registry";
78
import utils from "../../core/utils";
89

@@ -80,10 +81,15 @@ export default Base.extend({
8081

8182
if (this.options.trigger === "click" && this.options.source === "ajax") {
8283
// prevent default action for "click" and "mouseenter click"
83-
el.addEventListener("click", (event) => {
84-
event.preventDefault();
85-
event.stopPropagation();
86-
});
84+
events.add_event_listener(
85+
el,
86+
"click",
87+
"pat-tooltip--click-prevent-default",
88+
(event) => {
89+
event.preventDefault();
90+
event.stopPropagation();
91+
}
92+
);
8793
}
8894

8995
if (this.options.trigger === "click") {
@@ -236,14 +242,19 @@ export default Base.extend({
236242
".pat-tooltip--close-button"
237243
);
238244
for (let close_el of close_els) {
239-
close_el.addEventListener("click", async () => {
240-
await utils.timeout(1); // wait a tick for event being processed by other handlers.
241-
for (let close_button of close_buttons) {
242-
// Also remove the close button
243-
close_button.parentNode.removeChild(close_button);
245+
events.add_event_listener(
246+
close_el,
247+
"click",
248+
"pat-tooltip--close-tooltip",
249+
async () => {
250+
await utils.timeout(1); // wait a tick for event being processed by other handlers.
251+
for (let close_button of close_buttons) {
252+
// Also remove the close button
253+
close_button.parentNode.removeChild(close_button);
254+
}
255+
this.tippy.hide();
244256
}
245-
this.tippy.hide();
246-
});
257+
);
247258
}
248259
// Initialize any other patterns.
249260
registry.scan(this.tippy.popper);

0 commit comments

Comments
 (0)