私は Web アプリケーションを構築していますが、しばらくの間、Ajax によって HTML をページにロードするときに、$(document).ready() 内の関数を更新する必要があることに悩まされていました。
たとえば、私がこれを持っているとしましょう:
$(document).ready(function () {
$('#searchInput').keyup(function () {
// Do something
});
});
ただし、id="searchInput" の入力フィールドは、DOM のロード時にロードされません。ユーザーが特定の要素をクリックすると、後で ajax を使用してロードされます。id="searchInput" の入力フィールドがロードされましたが、元の DOM にロードされていないため、keyup(function) は #searchInput をリッスンしません。
今のところ、私の唯一の解決策は次のようにすることです:
function loadEvents() {
$('#searchInput').keyup(function () {
// Do something
});
}
$(document).ready(function () {
loadEvents();
});
そして、ajaxで成功します:
succes:
function() {
loadEvents();
}
これは機能します...しかし、もっと賢い方法があると思わずにはいられません...
loadEvents() 内に複数の関数がありますが、ajax 呼び出しが成功するたびにすべての関数をリロードするのが最善の解決策ではないようです。
もちろん、その後、多くの異なる ajax 呼び出しを行うことができます。これは、ajax で必要な特定の関数を実行することに成功しますが、その後、多くの異なる ajax 関数を作成する必要があります。
より良い解決策はありますか?