17

zend フレームワーク サイトからフォームを取得し、jquery モバイルによって記述された関数の新しいファイルに応答して配置しましたが、次のエラーが発生します。

キャッチされない例外: 初期化の前に selectmenu でメソッドを呼び出すことはできません。メソッド 'refresh' を呼び出そうとしました。

このファイルの関数のコード:

     function addItem(id) {
        $.ajax({
            url:'http://zf.darina.php.nixsolutions.com/order/index/create-order-mobile',
            dataType:"jsonp",
            data:{id_good:id},
            success:function (resp) {

                console.log(resp);
                $('.product-table').empty();

                $('.product-table').append(resp.prod);
                $('.product-table').append(resp.form);
                $('.add-order-btn').button();

                $('.mob-size').selectmenu('refresh', true);

                $('#block').page();
            }
        })
    }
4

5 に答える 5

46

最初にselectmenuを強制的に初期化します。

$('.mob-size').selectmenu(); // Initializes
$('.mob-size').selectmenu('refresh', true);

またはこれを略して使用します

$('.mob-size').selectmenu().selectmenu('refresh', true);
于 2012-10-09T15:43:11.693 に答える
4

カスタム更新委任関数でこれを行います。

var w = $("#yourinput");
if( w.data("mobile-selectmenu") === undefined) {
  // not initialized yet, lets do so
  w.selectmenu();
}
w.selectmenu("refresh",true);

ここの拡張解像度によると

于 2014-05-19T09:02:03.033 に答える
0

私は同じ問題を見つけましたが、より複雑な解決策です。jqm がselect要素をラップすると、<span>要素と同じクラス リストを持つselect要素に配置されます。私はそれへの参照を変更して、読む代わりに:

row.find(".selectCompletion").selectmenu("disable");

現在は次のようになっています。

row.find("select.selectCompletion").selectmenu("disable");

jquery がselectクラス名に一致する .row 内のすべての要素ではなく、クラス名に一致する要素のみを検索するように指定すると、問題が解決しました。

于 2018-04-17T16:10:29.373 に答える