2011-11-11 10 views
0

折りたたみパネルにxmlコンテンツから動的にjPanelを使用しようとしていますが、動的に作成されたパネルは表示されません。これはあまりにもjqueryでJPanelを動的に作成する方法は?

私を助け

<div id="detailTable" style="width:100%;"> 

</div> 

<!--Creating panels (Same thing if i create manually it is created, see the image)--> 
<div title="General Properties" class="class"> 
      ad 
</div> 
<div title="Other Properties" class="class"> 
    ad1 
</div> 

のjQuery

$('.class').jPanel({ 
     'effect' : 'fade', 
     'speed'  : 'slow', 
     'easing' : 'swing' 
    }); 


//when the user clicks on `Server` (left hand side) the below code is triggered 
$('#detailTable').empty(); 
    $('<div>') 
    .html('<div class="titleBlue">Configuration&gt;'+productname+'&gt;Server</div>'+ 
      '<div title="General Properties" class="class">'+ //Creating panels dynamically 
       '<table style="border:#2F5882 1px solid;width:100%;" cellspacing="1" cellpadding="1">'+ 
        '<tbody>'+ 
         '<tr>'+ 
          '<th style="width:22%" align="left">Version</th>'+ 
          '<td style="align="left">'+infa9_pm_version+'</td>'+ 
         '</tr>'+ 
        '</tbody>'+ 
       '</table>'+ 
      '</div>'+ 
      '<div title="Other Properties" class="class">'+ 
       '<table style="border:#2F5882 1px solid;width:100%;" cellspacing="1" cellpadding="1">'+ 
        '<tbody>'+ 
         '<tr>'+ 
          '<th style="width:22%" align="left">Home</th>'+ 
          '<td style="align="left">test</td>'+ 
         '</tr>'+ 
        '</tbody>'+ 
       '</table>'+ 
      '</div>')  
    .appendTo('#detailTable'); 

更新に

enter image description here

マイ容器の下の画像を参照してください。

$('#detailTable').empty(); 
    $('<div>') 
    .html('')  
    .appendTo('#detailTable').delay(10).queue(function(){ 
     $('.class').jPanel({ 
      'effect' : 'fade', 
      'speed'  : 'slow', 
      'easing' : 'swing' 
     }); 
    }); 

答えて

1

コンテンツを動的に追加するときは、JQuery liveを使用する必要があります。

クリック上のクラスへのJPanelを関連付けるプロトタイプ -

$('.class').live('click', function(){ 
    $(this).jPanel({ 
     'effect' : 'fade', 
     'speed'  : 'slow', 
     'easing' : 'swing' 
    });.focus(); 
    $(this).removeClass('class'); 
}); 

jQueryのtriggerを使用するプログラムでトリガするには。あなたは、次のような場合には(限り、動的なコンテンツがバックAJAXや呼び出しによって生成されていないような動的コンテンツの後に開始パネルを持って行うことができます

$('.class').trigger('click'); 
+0

回答ありがとうございますが、divをクリックしたときに表示されるパネルは、作成直後にどのように表示されるのですか? – abi1964

+0

クリックをプログラムでトリガできます。更新された答え。 – Jayendra

+0

ありがとうございます。 '.delay(10).queue'はまた私に役立ちました..私の更新された質問をご覧ください – abi1964

0

は、Ajaxの成功またはコールバックでJPanelのメソッドを開始します方法)。ここで、セレクタを使用して、パネルに使用するクラスまたはIDであること、私のように遅延およびキューを使用して好みではないだろうが目的は、異なる

$('#detailTable').empty(); 
$('<div>') 
.html('')  
.appendTo('#detailTable').find('selector').jPanel({ 
     'effect' : 'fade', 
     'speed'  : 'slow', 
     'easing' : 'swing' 
    }); 

entireleyある私は次のJPanelのリリースでは、これらのシナリオのデフォルトハンドラを実装しようとします。

+0

最新のjQueryリリースではlive()メソッドの使用は非推奨です。 – Deepu

関連する問題