So binden Sie den Bootstrap-Tooltip an dynamische Elemente
Lesezeit: 1 Minute
Benutzer1995781
Wenn Sie den Bootstrap-Tooltip verwenden, müssen wir so etwas schreiben, um die Tooltip-Funktionalität zu haben:
$(".showtooltip").tooltip();
Aber das Problem ist, dass wir diesen Code jedes Mal erneut ausführen müssen, wenn neuer Inhalt über Ajax geladen wird. Gibt es eine Möglichkeit, den Code einmal auszuführen und den Tooltip automatisch anzuwenden, wenn ein neues Element geladen wird?
Vielen Dank.
Elfayer
Sie müssen verwenden selector Eigentum. Siehe auf der Dokumentation :
“Wenn ein Selektor bereitgestellt wird, werden QuickInfo-Objekte an die angegebenen Ziele delegiert. In der Praxis wird dies verwendet, um zu ermöglichen, dass QuickInfos zu dynamischen HTML-Inhalten hinzugefügt werden. Siehe Dies und ein informatives Beispiel.”
Ich brauchte die select: '.classname' damit meins funktioniert. Ich verwende Handlebars, um Vorlagen dynamisch zu laden und sie mit Ajax-Aufrufen zu füllen. Während die Tooltips an den Elementen arbeiten, die beim ersten Laden der Seite geladen wurden, funktionierten sie einfach nicht an den dynamischen Elementen, bis ich den Selektor hinzugefügt habe. Vielen Dank.
Möglicherweise müssen Sie dies an Ihr Dokument bereit Ereignis anhängen: $(document).ready(function(){ $('body').tooltip({ selector: '[data-toggle="tooltip"]' }); });
<= Bootstrap v5.x, tooltip() existiert nicht im JQuery-Objekt.
Also kam ich auf diese selbstgemachte Lösung.
Ich weiß nicht wirklich über Leistungsprobleme oder eine bessere Problemumgehung Bescheid.
Wenn es also eine bessere Lösung dafür gibt, lassen Sie es mich einfach in den Kommentaren wissen, damit ich meine Antwort entferne oder aktualisiere.
Hier ist, was ich getan habe und für mich funktioniert:
var body = $('body');
body.on('mouseover', '[data-bs-toggle="tooltip"]', function () {
return new bootstrap.Tooltip(this).show();
});
body.on('mouseleave', '[data-bs-toggle="tooltip"]', function () {
$('[role="tooltip"]').fadeOut(function () {
$(this).remove();
});
});
12518200cookie-checkSo binden Sie den Bootstrap-Tooltip an dynamische Elementeyes