1

複数の<select/> タグを同期したいので、1 つが変更されるとすべてが変更されます。これらはすべて、jquery モバイル ページのナビゲーション バー ヘッダーの一部です。私のセレクターはこれです: $("header select").

change私は次のようにイベントを接続しました:

var statusselect = $("header select");

var statusevent = function (event) {

    statusselect.off("change");

    statusselect.val(event.target.value);

    statusselect.on("change", statusevent);

    try {
        statusselect.selectmenu("refresh");
    } 
    catch(e) {

    } 
};

statusselect.on("change", statusevent);

try/catchこれは、そのステートメントがある場合にのみ機能します。try/catchとその内部コードを取り出すと、テキストの<select/>更新は最初の変更後にのみ行われます。その後、イベントは正しく発生し、渡されたすべての値は正しくなりますが、テキストは更新されません (正しく選択されたオプションが表示されます)。

を取り出してそのtry/catchままにしておくstatusselect.selectmenu("refresh")と、オブジェクトがまだ初期化されていないことを示す例外がスローされます。

だから私は頭を悩ませたままにしています:<select/>テキストを変更するために例外をスローする必要があるのはなぜですか? ビューにない sに対して例外がスローされているため<select/>ですか?

4

1 に答える 1

0

あなた自身の質問に答えたと思います。このメソッドは、既に初期化されているrefreshウィジェット (この場合) を更新するためのものです。あなたの場合、他のページにある選択の初期化はまだ行われていません (拡張が行われます)。selectmenu呼び出し eventて手動で実行できるはずです.selectmenu()

于 2012-08-15T19:20:14.560 に答える