2012-04-19 1 views
1

にロードされません。は何も私は次のjQueryを持っていた前に、私のjQueryのダイアログ

var dialogDiv = "<div id='" + dialogId + "' class='modal hide fade'><div class='modal-body'><p class='body'></p></div></div>"; 

$('.modal-body p.body').load(href, function() { 
    ... 

今、何が私のjQueryのダイアログにロードされていない:

は今、私はこのような少し変わりました。何か案が?

ありがとうございました。

+0

されていますあなたの外側のdivは 'display:none'に設定されていますか? –

+0

load()を試行する前に、そのdialogdivをページに追加していますか?あなたのセレクタは '.modal-body p.body'のhtmlを解析しますが、まだ存在しない場合は –

答えて

3

問題は、これらの要素がまだDOMに存在しないことです。 jQueryオブジェクトで包み:

var $dialogDiv = $("<div id='" + dialogId + "' class='modal hide fade'><div class='modal-body'><p class='body'></p></div></div>"); 

$dialogDiv.find('.modal-body p.body').load(href, function() { 

EDIT:最終的にあなたがDOMでそのオブジェクトを挿入する必要があります。 insertAfter($bla)load()イベントにチェーンすることができます。

+1

+1ですが、適切な説明を追加してください。 bronzatoの最初の例では、変数 'dialogDiv'を使用して' load'イベントを追加し、2番目の例では追加されたDOMだけに適用されるセレクタを使用します。 'dialogDiv'は追加されなかったので、要素を見つけることができません。 Elclanrsの解決策は、追加されたDOMではなく、変数内の要素を検索することです。 –

+0

ありがとうございます。 – Bronzato

0

クラス 'hide'はダイアログdivを表示しますか? trueの場合、対象の要素は表示されません;)

0

あなたはDOMツリーにまだ利用できない要素を取得しようとしている、あなたは(負荷を呼び出す前にそれを注入)やコンテンツをロードする前にjQueryオブジェクトにそれをラップすることができ、次のいずれか

var dialogDiv = $("<div id='" + dialogId + "' class='modal hide fade'><div class='modal-body'><p class='body'></p></div></div>"); 

$('.modal-body p.body', dialogDiv).load(href, function() { ... } 
関連する問題