環境
- 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']" });