jquery ui对话框调用将无法从外部文件打开

时间:2012-05-03 18:50:55

标签: jquery html jquery-ui modal-dialog

我在几乎每个页面上都有一个用于视图选择的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

});

1 个答案:

答案 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');}
});