Javascript 覆盖JQuery中的选择框赢得';除非我先调用alert(),否则无法工作?

Javascript 覆盖JQuery中的选择框赢得';除非我先调用alert(),否则无法工作?,javascript,jquery,jqmodal,Javascript,Jquery,Jqmodal,我正在使用JQuery模式显示一个带有表单的弹出窗口。我的控制面板中的所有下拉框都使用jquery插件进行了更改,该插件通常运行良好。为了让Javascript与模态一起工作,我需要进行回调,但我得到了奇怪的结果 当我打开模式时,如果我在更改选择之前插入警报,我将只看到正确的下拉框: 回调函数: var myOpen = function(hash){ hash.w.css('opacity',1).show(); alert("test"); //This will make

我正在使用JQuery模式显示一个带有表单的弹出窗口。我的控制面板中的所有下拉框都使用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处理时间(尽管我仍然觉得很奇怪)。

Ok,通过调用onLoad事件中的
.selectmenu
而不是onShow来对其进行排序

最终代码类似于:

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

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

是否使用ajax调用填充下拉列表?这($('select').selectmenu();)代码是什么?为什么不使用散列来访问对话框的元素?@Microfed-它只是告诉所有选择框运行该模块。不需要更具体的IMO,因为我希望所有选择都遵守它。