2011-10-23 3 views
7

私が取り組んでいるプロジェクトの1つでjquery uniformを使用しています。これは管理者パネルなので、私は本当に表示するオプションがありません。私は私の問題を説明しますJquery Uniform Updateが機能しない

私がやっていることはかなり簡単です。私はいくつかのフォーム要素(選択、チェックボックス、テキスト入力など)をajaxでページに追加しています。

動的に追加されたフォーム要素の再スタイリングを除いて、すべてのものが機能します。

function step2() { 
    $.post(siteUrl + "includes/ajax/members/add-subscription.php?do=step2", $("#selectedSubscribers").serialize(), function(data) { 
     $('.step2_content').html(data); 
     $.uniform.update(); 
    }); 
} 

誰もが同様の問題を経験しましたか?私のonClick、onChange関数は問題なく(動的にフォーム要素を追加して)働いています。それはちょうど$.uniform.update();が動作していないようです。

データの処理に時間がかかる可能性があるので、$ .uniform.update();データが処理される前に呼び出されるので、私は$.ajaxasync: falseを使ってみました。

このような問題を経験した人や解決策を知っている人なら誰でもこの問題を解決することができます。

ありがとうございます。

答えて

14

$.uniform()が最初に呼び出されると、指定されたすべての要素が影響を受ける要素の内部配列に集められます。 $.uniform.update()に電話すると、既に収集された要素が簡単に表示されます。

追加の要素を追加するには、$.uniform()を再度呼び出し、動的に追加された新しい要素のみを識別するセレクタを渡す必要があります。

+0

ご返信ありがとうございます。残念ながら、うまくいきませんでした。 – Revenant

+3

理由は分かりませんが、これは$( "select、input:checkbox、input:radio、input:file")が働いていました。 $ .uniform.update(); .update()がなくてもまだ動作せず、なぜ要素をユニフォームに追加した後に.update()を使用する必要があるのか​​分からない。 – Revenant

+0

$ .uniform.update();私のために働いた:) thanks –

5

負荷用()修正promblem

$('#dialog').load(url + ' #forload', function() {$('#dialog').find('select').uniform(), $('#dialog').find('input:checkbox').uniform()}) 
+0

ありがとう - 私は、問題は、選択した要素を使用してスタイルを変更するユニフォームを取得していた。これは完全に私のために修正されました。 – MikeH

1

場合は、別の解決策は、この

setTimeout("$('.uniform_element').uniform();",200); 

200であってもよく、またはより高い数が必要な場合があります。

+0

この解決策は実際には均一読書と[関連issue#270](https://github.com/pixelmatrix/uniform/issues/270) –

+0

でお勧めします。私の場合、チェックボックスはドロップダウン内にありました – Prasanth

1

これを試しましたか?

$.uniform.update("#select_element_id"); 

私の場合は、この問題を解決しました。

古いバージョンのユニフォームには問題があるかもしれません。

0

これを使用してください。 $( '。elementClass')。uniform();

関連する問題