私は繰り返し処理してクリックハンドラを追加する一連のリンクを持っています。クリックされた各リンクは、応答データを含むdivを作成してDOMに追加するajax要求を起動します。しかし、新しく追加されたdiv(小さなライトボックスに似たフローティングdiv)は、ユーザーが閉じる(divで)をクリックするか、画面上の他の場所をクリックすると削除されます。私はこの変更を監視するために以下の簡単なスクリプトを持っていますが、クリックハンドラは一度だけ起動し、ページが更新されるまで動作しません。私は間違って何をしていますか?クリックハンドラは一度だけ起動します
var monitorChange = function() {
//Check if div has been appended to the dom and if so continue to monitor it
if ($('div.justappended').length > 0)
{
setTimeout(monitorChange,100);
}
else
{
//div has been removed from the dom
alert('div removed');
//...do additional stuff here
}
};
$('span.someElements').each(function() {
var that = $(this);
$(that).click(monitorChange);
});
最後の各ループで 'that'はすでにjQueryオブジェクトなので、' $(that) 'は必要ありません。 – Jess