1

我几乎在每个页面上都有一个用于查看选择的 UI 对话框,因此我将其移至外部 js 文件。

它在点击函数调用它的每个页面上都能完美运行,但在一个页面上,我试图根据 javascript 变量的值自动打开对话框,但它失败了。

是不是因为加载外部js文件时,对话框的html不存在?如果我将外部移回页面,它可以正常工作。

谁能给我一个解决方案,我真的很想将视图对话框初始化代码保留在外部文件中。

外部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

});

4

1 回答 1

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');}
});
于 2012-05-03T18:53:51.617 回答