Skip to content

Commit 5783616

Browse files
authored
Merge pull request #994 from Patternslib/tooltip-opts
Tooltip opts
2 parents a0ba74b + 665bea5 commit 5783616

File tree

1 file changed

+26
-14
lines changed

1 file changed

+26
-14
lines changed

src/pat/tooltip/tooltip.js

Lines changed: 26 additions & 14 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,26 +242,31 @@ 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);
250261
},
251262

252263
async _onMount() {
253264
if (this.options.source === "ajax") {
254-
await this.get_content();
265+
await this.get_content(); // + _initializeContent
266+
} else {
267+
this._initializeContent();
255268
}
256269

257-
this._initializeContent();
258-
259270
// Notify parent patterns about injected content.
260271
// Do not call pat-inject's handler, because all necessary
261272
// initialization after injection is done here.
@@ -338,6 +349,7 @@ export default Base.extend({
338349
this.tippy.setContent(content);
339350
await utils.timeout(1); // Wait a tick before forceUpdate. Might fail due to unset popperInstance.
340351
this.tippy.popperInstance.forceUpdate(); // re-position tippy after content is known.
352+
this._initializeContent();
341353
}
342354
},
343355

0 commit comments

Comments
 (0)