我在几乎每个页面上都有一个用于视图选择的UI对话框,因此我将其移动到外部js文件。
它在点击功能调用的每个页面上都能完美运行,但在一个页面上,我试图根据javascript变量的值自动打开对话框,它会失败。
这是因为加载外部js文件时,对话框的html不存在吗?如果我将外部移回页面,它可以正常工作。
任何人都可以为我提供解决方案,我真的想在外部文件中保留View Dialog初始化代码。
外部js文件
$(function() { // ******* The Views Dialog
var $divViewDialog = $('#divViewDialog');
$divViewDialog.dialog({ autoOpen: false, modal: true,title: 'Select required view'});
..... etc
调用对话框的页面代码 -
$(function() {
// ********* Other unrelated stuff
if (ulx>1) { $divViewDialog.dialog('open');} // If logged in, Show View Dialog
else {$divLoginDialog.dialog('open');} // else show Login Dialog
});
答案 0 :(得分:1)
可能是因为它们都设置为在文档就绪时执行,如果第二个先执行,则对话连线尚未实际发生。您应该将电线更改为JavaScript函数,然后在页面之前调用所述函数打开对话框。
编辑:此外,您将divViewDialog
放入一个只能在页面中的函数访问的变量中,因此它不能在外部文件中使用。我已更新以下代码,不再使用divViewDialog
变量。
试试这个:
外部JS文件
function wireUpDialog() {
$('#divViewDialog').dialog({ autoOpen: false, modal: true,title: 'Select required view'});
..... etc
}
页:
$(function() {
wireUpDialog();
if (ulx>1) { $('#divViewDialog').dialog('open');}
else {$divLoginDialog.dialog('open');}
});