たとえば、Javascript / jQueryのものを含むページがあります。
(function()
{
$('.tip').tooltip();
$('.test').click(function()
{
alert('Clicked!')
});
}();
ページに jQuery を使用して HTML を挿入し、DOM を変更します。たとえば、「tip」または「test」クラスの追加要素を挿入します。jQueryは操作されていないDOMで動作しており、挿入されたばかりの要素が存在しないため、新しく挿入された要素は機能しません。だから私は周りを検索して、「クリック」のためにこの解決策にたどり着きました:
$('body').on('click','.click',function()
{
alert('Clicked!')
});
理由はわかりませんが、このように操作された DOM で動作し、jQuery は新しく挿入された要素で動作します。私の最初の質問は、なぜこれが機能し、click() 関数だけが機能しないのですか? 2 番目の質問は、なぜ「体」を指さなければならないのかということです。
最後に、私の 3 番目の質問は、ツールチップを使用してこれを行うにはどうすればよいかということです。
この件については非常に多くの情報があることは知っていますが (前に読んだ delegate() および live() 関数)、それについての説明が見つかりません。そして、見つけた情報では 3 番目の質問を解決できません。
あなたの反応を楽しみにしています!
追加の質問:
4) この種の状況では、常に「本体」を指すことをお勧めしますか? 常にそこにありますが、パフォーマンスの問題が発生する可能性がありますか?