我正在使用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处理的时间(尽管我仍然发现这很奇怪)。
答案 0 :(得分:0)
好的,设法通过在onLoad事件而不是onShow中调用.selectmenu
来对此进行排序。
最终代码如下:
var myLoad = function(hash){
$('select').selectmenu();
};
$('a#settings').click(function(){
var script = 'myLink.php';
$('#ex2').jqm({ajax: script, onLoad: myLoad});
$('#ex2').jqmShow({modal: true});
});