1

ほぼすべてのページにビュー選択用のUIダイアログがあるので、それを外部のjsファイルに移動しました。

クリック関数によって呼び出されるすべてのページで完全に機能しますが、javascript変数の値に応じてダイアログを自動的に開こうとしている1つのページでは、失敗します。

これは、外部の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

おそらく両方ともドキュメントの準備ができた状態で実行するように設定されているため、2番目のスクリプトが最初に実行された場合、ダイアログのワイヤアップは実際にはまだ発生していません。ワイヤーを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 に答える