iframe弹出框打开时异常
-
错误描述
Uncaught Error: cannot call methods on dialog prior to initialization; attempted to call method ‘open’ -
错误原因
在按钮的点击事件中时,直接采用$(’#locationAllSettingDialog’).dialog(‘open’)的方式打开locationAllSettingDialog弹出框
<div class="button" style="text-align: right;"><input class="btn btn-outline-primary" type="button" value="<%=LABEL(LK_COM_COLLECTIVE_SETTING)%>" onclick="$('#locationAllSettingDialog').dialog('open')"></div>
- 解决办法
在打开iframe弹出框之前,须确保该弹出框已初始化,再调用$(’#locationAllSettingDialog’).dialog(‘open’)来打开才可正常显示。
修改后的html如下:
<div class="button" style="text-align: right;"><input class="btn btn-outline-primary" type="button" value="<%=LABEL(LK_COM_COLLECTIVE_SETTING)%>" onclick="openLocationAllSettingDialog()"></div>
修改后的js如下
<%-- 初始化弹出框 --%>
function initLocationAllSettingDialog(){
var locationAllSettingDialogButtons = {};
locationAllSettingDialogButtons[LB_BTN_SET] = function() {
$('#locationAllSettingDialog select').each(function(){
var id = $(this).attr("id");
$('.list select.' + id).val($(this).val());
});
$( this ).dialog("close");
};
locationAllSettingDialogButtons[LB_BTN_CANCEL] = function() {$( this ).dialog("close");}
$('#locationAllSettingDialog').dialog({bgiframe:true,autoOpen:false,modal:true,draggable:true,width:'auto',buttons:locationAllSettingDialogButtons});
}
<%-- 打开弹出框 --%>
function openLocationAllSettingDialog(){
initLocationAllSettingDialog();
$('#locationAllSettingDialog').dialog('open');
}