1

jQueryコードによって操作されている要素を含むdivがajaxによって再ロードされた後、jQueryのものが機能しないという問題があります。jQuery .live関数は、少なくともすべてのイベントがトリガーされることを理解するのに役立ちました。ただし、.text()などの関数はまだ機能していません。例えば

$('#idOfElementBeingInDivWhichIsReloadedByAjax').text('New text');

この問題に対処する方法を誰かが提案していますか?

編集:問題は、私が作業しているWebサイトが、ナビゲーションアイテムをクリックすると、ページコンテンツをajaxでロードすることです。すべてのjQuery機能は、サイトに初めてアクセスしたときに機能します。ただし、2回目にDOMが再ロードされ、jQueryは元のDOMを引き続き使用するため、.text()などのメソッドは変更を表示しなくなります。上記のように、.live()メソッドは、特定のページの2回目の呼び出し後も少なくともイベントがトリガーされるのに役立ちました。

4

1 に答える 1

0

これを行う唯一の方法は、ajaxのリロード後にコードが実行されることを確認することです。一般的なアプローチは、ajaxコールバック関数から呼び出されるinit()関数を作成することです。

$(function(){
  $('#myParentAjaxDiv').load('somepage.html', function(){
    initStuff();
  });
});

function initStuff(){
  $('#idOfElementBeingInDivWhichIsReloadedByAjax').text('New text');
}
于 2012-05-29T10:18:39.223 に答える