【发布时间】:2011-03-10 10:15:44
【问题描述】:
我正在用 PHP 脚本中的选项卡构建一个 jQuery 对话框。该脚本在循环内使用“include”指令,遍历选项卡并包含其他脚本。每个包含的文件都有选项卡的数据和一个
<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>
问题是,在使用
$("#tabDialog").dialog ({
autoOpen: false,
minWidth: 450,
minHeight: 400,
width: 600,
height: 500
}).dialog ('open');
造成这种情况的原因是什么?解决这种情况的最佳方法是什么?我试图将每个选项卡的功能保存在单独的文件中,因为它们可以在多种情况下使用,并且我不必复制与它们关联的代码。
感谢您的任何帮助或建议。
【问题讨论】:
-
有什么方法可以添加更多代码来查看更多正在发生的事情吗?仅此一点有点难以弄清楚。
-
既然你在循环中,你确定你没有在html中多次使用ID tabDialog 吗?在这种情况下,它将触发每个#tabDialog div 的事件。
-
发生这种情况是因为包括脚本块在内的内容被移动到正文的末尾(并再次执行)......虽然我不确定纠正这个问题的最佳方法,但脚本可以对于所有这些都不会包含在单个外部文件中吗?
-
您的 javascript 似乎很麻烦。这可能会有所帮助——stackoverflow.com/questions/3142504/…
标签: php jquery dialog document-ready