環境
- Bootstrap 4 /5
やりたいこと
動的に生成された要素にBootstrapのツールチップを適用したい。しかし、以下のコードではツールチップが正常に動作しない。
$('#mybutton').click(function() {
$('#content').append('<a href="#" data-toggle="tooltip">hover me</a>');
});
このコードは、ボタンをクリックすると新たなリンク要素が生成され、そのリンク要素にツールチップが適用されることを期待している。しかし、実際には新たに生成された要素に対してツールチップが機能しない。
解決策
イベントの登録をbodyに対して行えばOK
Bootstrap4の場合
document.addEventListener('DOMContentLoaded', () => {
$('body').tooltip({ selector: '[data-toggle="tooltip"]' });
});
Bootstrap5の場合
new bootstrap Tooltip("body", {
selector: "[data-bs-toggle='tooltip']"
});