PHP スクリプトでタブ付きの jQuery ダイアログを作成しています。このスクリプトは、ループ内で「include」ディレクティブを使用し、タブを繰り返し、他のスクリプトを含めます。含まれている各ファイルには、タブのデータと、jQuery の document.ready() 関数を含む <script> タグが含まれています。ループがなければ、基本的にこれを行います:
<div id="tabDialog">
<div id="tabs">
<ul>
<li><a href="#tab1'>Tab1</a></li>
<li><a href="#tab2'>Tab2</a></li>
</ul>
<div id="tabContainer">
<div id="tab1">
<?php include "tab1.php"; ?>
</div>
<div id="tab2">
<?php include "tab2.php"; ?>
</div>
</div>
</div>
</div>
たとえば、tab1.php には次のようなものがあります。
<script type="text/javascript">
$(document).ready (function () {
alert ('tab1 loaded');
});
</script>
問題は、ダイアログの DIV として <div id="dialog"> を使用してダイアログを作成して開くと、ドキュメントの準備完了関数が 2 回呼び出されることです。ダイアログコードは次のとおりです。
$("#tabDialog").dialog ({
autoOpen: false,
minWidth: 450,
minHeight: 400,
width: 600,
height: 500
}).dialog ('open');
これの原因は何ですか?また、状況を改善する最善の方法は何でしょうか? 各タブの機能を別々のファイルに保持しようとしています。それらは複数の状況で使用でき、それらに関連付けられたコードを複製する必要がないからです。
助けやアドバイスをありがとう。