使用JQuery选项卡加载的文件中的JQuery

时间:2013-06-27 21:06:12

标签: php jquery css

这是我第一次尝试使用JQuery标签。我有一个简单的文件,在单击选项卡时加载3个其他php文件。

<div id="info">
    <ul id="info-nav">
        <li><a href="tab1.php">Tab 1</a></li>
        <li><a href="tab2.php">Tab 2</a></li>
        <li><a href="tab3.php">Tab 3</a></li>
    </ul>
</div>    

<script type="text/javascript">

    $(document).ready(function(){
        $('#info').tabs();
    });

</script>

php文件也使用JQuery并正确加载。当我独立测试文件时,JQuery部分工作正常。但是一旦将它们加载到选项卡中,JQuery就无法运行。即使加载文件中的$(document).ready(function()...)中的简单警报也没有显示。两个文件中的JQuery之间是否存在冲突?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

本身没有冲突,但发生了两件事之一:

  • 浏览器拒绝执行&lt; script&gt;的内容动态加载内容中的标签;
  • 浏览器正在执行&lt; script&gt;标记,但在动态加载内容时,不会在文档对象上触发ready事件。

第二个几乎肯定是真的;第一个也可能是。

要找出正在发生的情况,而不是将alert()置于$(document).ready()回调中,请将其简单地放在&lt; script&gt;中。给定HTML文件的标记,然后重新加载并选择动态加载该HTML文件的选项卡。在上述第一种情况下(&lt;脚本&gt;标签根本没有被执行),警报将不会显示;在第二种情况下(就绪事件没有解雇),它会。

如果代码正在执行,那么您只需要将代码从回调中取出并将其包装在裸&lt; script&gt;中。标签;它将在浏览器看到后立即执行。否则 - 我建议这在任何情况下都是可取的,出于可维护性的原因 - 您需要重新编写应用程序,以便它不依赖于执行随机&lt; script&gt;中包含的Javascript。标签分散在各种HTML文件中,而是使用一些统一的处理程序来处理加载标签内容时的任何需求。