2011-02-04 16 views
2

私はAJAXページネーションを使用していますが、正常に動作しています。ajaxレスポンス・ページでjqueryを実行する方法は?

データを正常に返します。例:

if (xmlHttp.readyState==4) 
{ 
document.getElementById("NewsFeedListID").innerHTML=xmlHttp.responseText; 
} 

NewsFeedListID divには正しいデータが含まれています。

このレスポンスAJAXページでjQueryを使用する必要がありますが、jQueryは機能しません。

誰でも手助けできますか?

+0

jQueryとは何ですか? ... –

+0

jQueryのコードが動作していないことについて、もう少し詳しく説明できますか? –

+0

どのように機能しないのですか?どのようにそれを含めるのですか? ** your **ページにjQueryを含める必要があることに注意してください。上記の「innerHTML」への代入によって作成されたDOM要素に対してjQueryを使用することはできません。 –

答えて

1

ご質問のコメント欄にあなたの説明をお読みくださいJoshanswerにヒットしました。

あなたのjQueryのイベントが機能していない理由は、その後、あなたはID「削除」とアンカー/ボタンに$('#delete').click(function() {alert('success');})を使用してイベントハンドラ(つまり#DELETEの一部です)「添付」、後でそのアンカー「#DELETE」からです"#NewsFeedListID"のinnerHTMLを置き換えるときにDOMからgetが削除されるため、イベントハンドラを#deleteに再接続するか、またはJoshがクリックイベントトリガを維持するイベント委譲という手法を使用することを提案していますinnerHTMLを置き換えても

jQueryを使用してajaxリクエストを簡略化する(「load」の方法を参考にしてください)、$('#delete').live('click',function() {alert('success');})を使用して解決してくださいあなたの直接の問題。

2

あなたの最善の策は、AJAXリクエストではなく元のページにjQueryを含めることです。その後、.live()を使用してイベントをバインドします。これは、ページに含まれているかどうかに関係なく、イベントを要素にバインドします。次に、AJAX経由で要素を挿入すると、ボタンが機能します。

1

私が理解しているのは、戻ってきたページにはJSコードがあるということです。innerHTMLを設定するとJSが実行されないので、JSコードを実行しますここにコードを入力するとevalコードに挿入する必要があります。

Evalは決して良い考えではありません。オリジナルのページにすべてのJSコードを入れて、jqueryの.live()関数を使用して、ロードされたときにページに存在しない要素にイベントをアタッチすることをお勧めします。

+0

そして、新しいページのajaxレスポンスにjquery用のスクリプトを追加する必要はありません。すでにjQueryがページにロードされています。 –

+0

EDIT - 新しいページのajaxレスポンスにjqueryのスクリプトを含める必要はありません。メインページにshownldを含めてください –

関連する問題