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 有更多时间处理,但这似乎很奇怪。

我错过了什么吗?

编辑:如果我非常快地单击警报“确定”按钮,则选择也不会改变,这证实了我对允许 JS 处理时间的警报的想法(尽管我仍然觉得这很奇怪)。

4

1 回答 1

0

好的,设法通过调用.selectmenuonLoad 事件而不是 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});
});
于 2011-11-19T09:54:40.337 回答