PHP包含jQuery

时间:2012-12-06 18:26:30

标签: php jquery

我没有找到任何东西,所以希望我能在这里得到答案?

在我的php页面上加载内容时,我看到以下错误:

  

TypeError:$(...)。load不是函数[Break On This Error]

     

$(document).load(function(){

所以我查看了我当前的jQuery设置,包括Firebug中的源代码,并确认了以下内容:

  • 正确加载jQuery 1.8.0
  • 我在加载调用之前添加了条件语句来检查是否填充了jQuery。
  • 我正在使用的库已加载
  • 在文档加载触发之前发出警报

这是我的代码 - PHP包含文件和jQuery是否有不允许的内容?:

<html>
<head> ...... </head>
<body>
    <div id='header'></div>

    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
    <script type="text/javascript" src="/js/jquery.nivo.slider.js"></script>
    <script type="text/javascript">

        $(window).load(function() {
            $('#slider').nivoSlider({
                animSpeed: 500,
                pauseTime: 5000,
                slices:40
            });
        });

    </script>

    <!-- Included file -->
    <div id='container'>
        <div style="height:245px;" id="wrapper">
                <div style="height:245px;" class="slider-wrapper theme-default">
                    <div style="height:245px;" class="nivoSlider" id="slider">
                        <img data-transition="sliceUpDownLeft" alt="" data-thumb="images/toystory.jpg" src="images/toystory.jpg">
                        <img title="This is an example of a caption" data-transition="sliceUpDownLeft" alt="" data-thumb="images/up.jpg" src="images/up.jpg">
                        <img data-transition="sliceUpDownLeft" alt="" data-thumb="images/walle.jpg" src="images/walle.jpg">
                        <img title="#htmlcaption" data-transition="sliceUpDownLeft" alt="" data-thumb="images/nemo.jpg" src="images/nemo.jpg">
                    </div>
                    <div class="nivo-html-caption" id="htmlcaption">
                        <strong>This</strong> is an example of a <em>HTML</em> caption with <a href="#">a link</a>. 
                    </div>
                </div>

        </div>
    </div>
    <!-- End included file -->

    <div id='footer'></div>
</body>
</html>

3 个答案:

答案 0 :(得分:4)

PHP并不关心客户端上的内容 - 在浏览器上运行的代码(JavaScript)和您的服务器(PHP)根本不会进行交互,即使PHP生成包含JavaScript的页面也是如此。

当你使用PHP预先填充JavaScript常量(通常是一个坏主意)或JavaScript使用GET / POST将数据发送回新实例时,它们相交的唯一时间是间接的脚本(标准练习。)

所以打折后,让我们看一下JSFiddle中的页面:

http://jsfiddle.net/Rfh9A/

虽然我不得不在GitHub指出NivoSlider链接,但它在那里工作得很好。所以现在我们只有几个选择:

  1. 您的实际代码与发布的内容不同
  2. 您正在通过AJAX加载此页面,jQuery已经是父文档的一部分。这在过去给我带来了问题,特别是当你加载两个不同版本的库时。如果您将$更改为jQuery,则可能会有效,以防图书馆禁用兼容性的简写。
  3. 未粘贴的部分页面中的JavaScript错误(请参阅答案1)阻止jQuery实例化。
  4. (远景)您的本地计算机上存在DNS问题,导致浏览器无法加载jQuery库。

答案 1 :(得分:0)

使用:

$(document).ready(function() {
});

window.onload vs $(document).ready()

编辑:

无视我说的话。

如果你在本地html文件中使用它,那么带有//路径的jquery包含将被视为本地文件,例如file:///ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js,它不存在。

使用:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>

答案 2 :(得分:-1)

尝试在<head></head>标记中包含您的javascript文件,以确保在内联脚本运行之前全部加载。