0

JQuery Modal を使用して、フォームを含むポップアップを表示しています。コントロール パネルのすべてのドロップダウン ボックスは、通常は正常に動作する jquery プラグインを使用して変更されます。Javascript をモーダルで動作させるには、コールバックを実行する必要がありますが、奇妙な結果が得られます。

モーダルを開くと、選択が変更される直前にアラートを入力した場合にのみ、正しいドロップダウン ボックスが表示されます。

コールバック:

var myOpen = function(hash){
    hash.w.css('opacity',1).show();
    alert("test"); //This will make the selects change properly.
    $('select').selectmenu();
};

モーダルオープン:

$('a#settings').click(function(){
    var script = 'myLink.php';
    $('#ex2').jqm({ajax: script, onShow: myOpen});
    $('#ex2').jqmShow({modal: true});
});

アラートを追加するとJSが処理する時間が増えるため、これはモーダルをロードする時間と関係があると思いますが、これは奇妙に思えます。

何か不足していますか?

編集:アラートの「OK」ボタンを非常に速くクリックしても、選択は変更されません。これは、JSが処理する時間を許可するアラートの考えを確認します(それでも奇妙だと思いますが)。

4

1 に答える 1

0

.selectmenuわかりました。onShowの代わりにonLoadイベントでinを呼び出すことで、これを並べ替えることができました。

最終的なコードは次のようなものです。

var myLoad = function(hash){
    $('select').selectmenu();
};

$('a#settings').click(function(){
    var script = 'myLink.php';
    $('#ex2').jqm({ajax: script, onLoad: myLoad});
    $('#ex2').jqmShow({modal: true});
});
于 2011-11-19T09:54:40.337 に答える