7

作業中のプロジェクトの1つでjqueryユニフォームを使用しています。これは管理パネルなので、表示するオプションはありません。私の問題を説明します

私がやろうとしていることは非常に簡単です。いくつかのフォーム要素(選択、チェックボックス、テキスト入力など)を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

そのような問題を経験した人、または解決策を知っている人がこの問題を手伝ってくれると嬉しいです。

前もって感謝します。

4

5 に答える 5

14

$.uniform()最初に呼び出されると、指定されたすべての要素が影響を受ける要素の内部配列に収集されます。あなたがそれを呼ぶとき、$.uniform.update()それは単にすでに集められたそれらの要素を作り直します。

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

于 2011-10-23T18:23:07.080 に答える
5

問題を修正する場合はload()の場合

$('#dialog').load(url + ' #forload', function() {$('#dialog').find('select').uniform(), $('#dialog').find('input:checkbox').uniform()})
于 2012-03-19T12:45:28.697 に答える
2

これを試しましたか?

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

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

ユニフォームのバージョンが古いと、問題が発生する可能性があります。

于 2013-06-19T12:46:10.863 に答える
1

別の解決策はこれかもしれません

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

200以上の数が必要になる場合があります。

于 2012-12-19T17:32:42.523 に答える
1

これを試して:

   $('.elementClass').uniform();
于 2014-01-23T05:43:55.170 に答える