jquery ツール + livequery を使用しています。私は4つの要素を持つ水平アコーディオンを持っています。最初のページの読み込みでは、PHP スクリプトによって作成されるため、アコーディオンはうまく機能します。最初のタブが開き、すべてが適切にスライドします。(この例のように: http://flowplayer.org/tools/demos/tabs/accordion-horizontal.html )
JSON 経由でアコーディオン要素をリロードするタイマー イベントがあります。それが起こるとすぐに、タブはアクティブになりません。アコーディオンがリロードされたら livequery イベントを添付しようとしていますが、わかりません。
構造は次のようになります。
<div id="accordion">
<div class="accordion_element>[tab content]</div>
<div class="accordion_element>[tab content]</div>
<div class="accordion_element>[tab content]</div>
<div class="accordion_element>[tab content]</div>
</div>
次の方法でアコーディオンをアクティブにします。
$("#accordion").tabs("#accordion .div_body", {
tabs: '.img_bgr',
effect: 'horizontal'
});
そして、それは魅力のように機能します-最初のタブが展開され、他のタブはクリック可能で、クリックすると展開されます. 次に、毎分トリガーします:
$.getJSON("accordion.php", function(json){
$.each(json, function(key, val) {
//-------parse json here and append each accordion_item (I empty the accordion prior)
$('#accordion').append(accordion_item);
});
});
この時点で、私は美しいアコーディオンを持っていますが、アクティブ化されていません - それはただのタブです。
#accordion への将来のすべての更新に影響するように、次のイベントに livequery イベントを添付するにはどうすればよいですか?
$("#accordion").tabs("#accordion .div_body", {
tabs: '.img_bgr',
effect: 'horizontal'
});
基本的に、すべてのクリックなどを制御する .tabs に .live (または livequery) を割り当てることができる必要があります。
このページで - http://flowplayer.org/tools/demos/tabs/accordion-horizo
ntal.html 3 つの画像 + 露出したテキストが json でリロードされ、.tabs がそれ以上の効果を持たないことを想像してください。
このように(もちろん動作しません)
$("#accordion").live( '.tabs', function(){
"#accordion .div_body", {
tabs: '.img_bgr',
effect: 'horizontal'
};