2010-12-01 16 views
2

は、私はjQueryのを使用して、次の操作をしています言ってやるがいい。

$("#myid").html('<span id="inserted">inserted portion</span>') 

この操作を行った後私がページソースを見ると、HTMLの挿入部分(idが "inserted"のスパンタグ)はそこでは利用できず、$( "#inserted")で行うそれ以上の操作は単に失敗します!

これは、AJAX呼び出しによってページの一部を更新(通常はjQuery html()メソッドを使用して新しい部分を挿入する)し、更新された部分でより多くの操作を実行しようとするときに大きな問題になります。

私には何が欠けているのか説明してください。あなたが挿入されたIDの結合されているものは何でもイベント

+2

悪いタイトル。コードの行以外の名前を付けてみてください... –

+0

"ページソースを表示すると" - どのようにしていますか?また、「挿入された部分」というテキストがページ自体に表示されるのですか、または挿入全体が失敗しますか? – deceze

+0

あなたのコードを分析できるように、jsとhtmlのより詳細な例を提供してください。 –

答えて

2

が....ライブを使用、これは将来のHTML要素やHTMLのために結合するページのソースだけではあるので、これはランタイム

http://api.jquery.com/live/ 

$('#inserted ').live('click', function() { 
    // Live handler called. 
}); 
+0

この返信は私の問題の直接的な解決策であると思われます(まだとにかくテストしています)。大変感謝しています。 – siva636

2

に追加... ソース ..ブラウザに読み込まれます。ドキュメントがロードされた後、jquery Document Ready関数を介してドキュメントを操作します(すべてのイメージなどがロードされた後に実行されます)。

変更したHTML/CSS /すべてを検査する場合は、FirebugやChrome/Safari開発ツールなどのデバッグツールを使用します。

$("#inserted)操作が失敗した場合は、具体的な例を投稿することをお勧めします。あなたが何か詳細を投稿しなければ、私たちは本当にあなたを助けることはできません。

2

#myidが存在する場合、新しい要素はブラウザの文書の内部表現(「DOM」)内に存在します。ページのソースはオリジナルのhtml(およびjs)ですが、それ以降の操作はすべて、ソースに存在するかのように正しく動作するはずです。

関連する問題