2011-06-25 3 views
1

私はCollapsible jQuery Pluginを使用して折りたたみ可能なフィールドセットを作るための良い方法を使用します。何のフィールドセットが動的に追加されていないながらjQueryの.live()GUIチェンジャー機能のための

$("fieldset").collapse(); 

すべてが正常に動作します。 .live()関数を使って 'クリック'のようなイベントをバインドすることは可能ですが、動的に追加されたすべてのフィールドセットに.collapse()を自動的に追加することができるのだろうかと思います。

私が試した:

$("fieldset").live('ready', collapse); 

$("fieldset").live('ready', function() { 
    $("fieldset").collapse(); 
}); 

をしかし、それは動作しません。 'ready'を 'load'に変更することはあまり役に立ちません。

動的に挿入された新しいDOM要素に ".colapse()"のようなUI機能を適用する方法はありますか?

ありがとうございます。

答えて

-2

jQuery .live()メソッドは、トリガされるイベントを必要とします。 .live()または.delegate()を使用して新しく追加されたコンテンツをAJAXコールバックで処理することはできません。

これを行うには、livequeryプラグインを使用する必要があります。

このhow to replace $.livequery with $.delegate or $.liveフォーラムスレッドは、問題と解決策の詳細を示します。

は、私の場合(有効livequeryプラグイン付き)ソリューションです:

+0

私はAJAXコールバックを使って新しく追加されたコンテンツを処理するのに.live()や.delegate()を使うことはできません "ということです。 ) – Kon

+0

.live()は、サーバー側からHTMLを取得したときにトリガーされるイベントが必要です - そのようなイベントはありません。jQueryサイトからの引用: "残念ながら、使用している方法が主な目的です最近LiveQueryのために.live()と.delegate()はどちらもイベントデリゲーションのラッパーであり、whi chが必要です、まあ...起こるイベント。liveQueryが許可することはできません。追加された時点で、ページに追加された要素のコンテキストで実行される自動コールバックです。 – Zelid

1

私は一種の同様の問題(種類の)を持っていたので、これはあなたを助けるかもしれない...

Making a jQuery UI Slider with live()

を、私は基本的に(住んで使用してプラグインjQueryを使っていくつかの要素を初期化しなければならなかった)と、カスタムイベント。

+0

どうもありがとう:-)魅力のような

$('fieldset').livequery(function() { $(this).collapse(); }); 

作品、それが答えを見つけるために私を助けました。 livequeryプラグインは魔法をやっています! – Zelid

1

動的である場合、作成したDOMオブジェクトに折り畳みプラグインを追加しないのはなぜですか?

var html = "<fieldset id='my-fieldset'></fieldset>"; 

$('body').appendTo(html); 

$('#my-fieldset').collapse(); 
+0

私の場合、動的とは、HTML部分がサーバー側から返されたことを意味します。 HTMLパーツがリストに追加され、一意のIDではなくクラスのみを追加することができます:( – Zelid

+0

@ user118657、なぜ一意のIDを追加できないのですか?それがクラスの場合は、 $( '。to collapse-object')。collapse(); ... htmlが追加されたときにクラスを設定すると、そのcollapse()を呼び出すことができます。 – bdparrish

関連する問題