将jquery包含在单独的php头文件中会以某种方式失败

时间:2011-11-23 18:01:40

标签: php javascript jquery html

我正在建立一个网站,并且一直在使用一些似乎不起作用的jQuery脚本。但过了一段时间,我发现我必须链接到我的内容文件中的jQuery lib。

我的层次结构如下:

  • header.php(common header html)
  • link / index.php(其中“link”是域上的任何子文件夹,即:contact / index.php,home / index.php等)
  • footer.php

所有这些内容文件都使用“require_once(”header.php“)”和页脚,模板技术相同。

即使在浏览器中查看源代码链接到包含的脚本和CSS文件,它仍然可以加载jQuery(仅限)。但是当我把它包含在特定的内容文件中时,我编写的脚本就可以了。

以下是一些相关代码:

header.php中的

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="NO">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>

<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]-->
<script type="text/javascript" src="../js/jquery-latest.pack.js"></script>
<script type="text/javascript" src="../js/shl_menu.js"></script>
<script type="text/javascript" src="../js/prototype.js"></script>
<script type="text/javascript" src="../js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="../js/lightbox.js"></script>

在gallery / index.php(内容文件)

<?php require_once("../header.php"); ?>

<!-- Sub Menu List -->
<nav id="shl-submenu" class="left shadow-box rounded-corners">

<script type="text/javascript">
$(document).ready(function(e) 
{
    $("#shl-submenu ul li a").click(function(e) {
        alert("Click");
    });
});
 ...

现在,如果我将<script type="text/javascript" src="../js/jquery-latest.pack.js"></script>包含在该脚本之上,那么它可以正常工作,但除非。

任何帮助将不胜感激! 感谢。

1 个答案:

答案 0 :(得分:2)

正如您猜测的那样,jQuery和Prototype之间存在冲突。两者都将$定义为函数。您始终可以使用变量jQuery而不是$来避免这种情况,并在jQuery之后声明原型。这篇文章解释了解决这个问题的好方法:

How to avoid conflict between JQuery and Prototype