4

JQuerymobileの選択メニューでデフォルトの選択を設定しようとしています。ドキュメントにはこれがあります:

   var myselect = $("select#foo");
   myselect[0].selectedIndex = 3;
   myselect.selectmenu("refresh");

メニューを作成する場所のすぐ下に追加しましたが、コードを実行すると次のエラーが発生します。

初期化の前に"+name+"でメソッドを呼び出せません;"+"メソッドを呼び出そうとしました'"+オプション+"'";

この時点で何をすべきかわからない...

4

3 に答える 3

7

まだロードされていない JavaScript で DOM オブジェクトを操作しようとしています。操作しようとしているフォームを超えて JavaScript を移動するか、コードをドキュメントの読み込み時に実行される関数に移動します。

例えば:

$('#PAGE').live('pagecreate',function(event){
    var myselect = $("select#foo");
    myselect[0].selectedIndex = 3;
    myselect.selectmenu("refresh");
});

wherePAGEは、操作したいメニューを含む読み込み中のページの ID です。


編集:

JQuery Mobile eventsに関する jinyuan のコメントに基づいて、JQuery Mobile pagecreate イベントを使用するように例を更新しました。

于 2011-06-17T03:50:33.880 に答える
3

jQuery関数として:

$.fn.jqmSelectedIndex = function(index){
    var self = $(this)
    self
        .prop('selectedIndex', index)
    .selectmenu("refresh");

    return self;
}

$("select#foo").jqmSelectedIndex(3);

これは検証されていませんが、機能します。

于 2012-01-03T21:39:56.410 に答える
1

できます。たぶんあなたはより多くの詳細を提供したいかもしれません。

http://jsbin.com/ekayu3/2

于 2011-06-17T03:35:58.460 に答える