2011-11-08 13 views
1

以下は2つのアコーディオン(jquery ui)のコードです。最初のものはhtmlでハードコードされ、2番目のものはjqueryを介してDocument readyのページに配信されます。PHPのjQuery UIコンポーネントが正常に動作しません。

HTML:[このアコーディオンの動作]:

<div class="accordion"> 
    <h3><a href="">one</a></h3> 
    <div>aaaaaaaaaaaaaaaaaaaaaaaa</div> 

    <h3><a href="">two</a></h3> 
    <div>bbbbbbbbbbbbbbbbbbbbbbbb</div> 
</div> 

PHP:[このアコーディオンは動作しません]

echo' 
<div class="accordion"> 

    <h3><a href="">One</a></h3> 
    <div>111111aaaaa</div> 

    <h3><a href="">Two</a></h3> 
    <div>222222aaaaa</div> 

    <h3><a href="">Three</a></h3> 
    <div>333333</div> 
</div> 
'; 

は、どのように私は動的には、アコーディオンも動作届けするのですか?

EDITED:

$(document).ready(function(){ 

    $('#drag').draggable(); 
    $('.accordion').accordion(); 

    $.post('scripts/test.php', { }, 
     function(output){ 
      $("div#test_php").html(output); 
     } 
    ); 

}); 

資料準備のアコーディオン機能を設定して、DOMにそれを埋め込む、PHPスクリプトから2番目のアコーディオンを要求==。 すべてのPHPスクリプトは、2番目のアコーディオンのコードをエコーし​​ます。

+0

アコーディオンを初期化するJavaScriptコードを確認する必要があります。 PHPからリクエストするjQuery呼び出しが完了するまで、アコーディオンを初期化することはできません。 –

答えて

3

DOMに動的に注入する場合は、再度アコーディオンを再初期化する必要があります。

$.post('scripts/test.php', { }, 
     function(output){ 
      $("div#test_php").html(output); 
      $('.accordion').accordion(); 
     } 
); 
+0

ありがとう、DOMに動的に追加された後、どのように「アコーディオンを再初期化するのですか? –

+0

自分の編集を確認してください。あなたのコンテンツが読み込まれた後にコールバック関数でそれを行うことができます。 –

+0

それは完璧ですね!どうもありがとう;) –

関連する問題