网站上线后Jquery失败

时间:2010-04-29 04:54:17

标签: php jquery

编辑:发布头码 编辑2:关于php的澄清

我使用JQuery设计了几个星期的网站。我没有本地服务器或测试服务器所以我只是通过FTP创建了一个目录'/ testing'。一切都在测试目录中运行良好。

我试图通过将'/ testing'中的所有文件移动到根目录而今晚上线,并相应地更改了所有文件路径和脚本源。该站点加载,但与JQuery相关的所有内容都不起作用。 Javascript控制台提供错误(仅作为插件的示例):

  

'$。os.name'不是函数

我不知道该做什么。我更改了引用JQuery库的路径,安装了JQuery的新副本(到新目录)等。

在不同的目录'/ blog'中有一个wordpress安装。我已经阅读了有关wordpress的一些兼容性问题,但这似乎与在 wordpress中使用JQuery 有关,我不是。

这是头部代码:

<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<link href="main.css" rel="stylesheet" type="text/css">  
<link href="jquery.lightbox-0.5.css" rel="stylesheet" type="text/css">  
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>  
<script type="text/javascript" src="jq.browser.js"></script>  
<script type="text/javascript" src="compatible.js"></script>  
<script type="text/javascript" src="nav.js"></script>  
<script type="text/javascript" src="jquery.lightbox-0.5.js"></script>  
<script type="text/javascript">  
$(function() {  
$('a.lightbox').lightBox();  
});  
</script>  
<title>Pearce Images</title>  
<script type="text/javascript" src="slider.js"></script>  
<link href="slider.css" rel="stylesheet" type="text/css">  
</head>

值得注意的是,所有页面都是PHP格式的。我不是PHP开发人员,我只使用1个函数:require_once('some.file.php')。 (抱歉没有代码标记,但我无法处理这个降价事件)。我只是使用它为所有页面的页眉和页脚提取相同的代码,这样如果需要进行更改,我只需要更改一个代码块。

非常感谢您的帮助。

5 个答案:

答案 0 :(得分:0)

首先尝试从浏览器下载jquery.js文件(或其他任何名称)。转到查看源。某些浏览器会自动突出显示链接,以便您单击它们查看访问时是否加载了jquery.js文件。如果没有,则说明服务器配置问题。

否则,创建一个使用jQuery脚本的简单HTML文件。如果它运作得很好,你就可以解决问题了。

要测试的一件事是查看jQuery变量是否仍然可用。 $可能已更改为引用另一个JavaScript库。如果是这种情况,您不必用jQuerys替换所有$ s;您可以使用其他插件保持代码与代码兼容,方法是使用如下所示的jQuery代码:

(function($){
    /* Code using $ for jQuery. */
}(jQuery));

答案 1 :(得分:0)

要进行问题排查,请尝试将jQuery的<script>标记指向{AJ}的Google AJAX Libraries来源http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js。如果可行,那么您只是弄乱了src属性。发布您在页面中的标题以及物理放置jQuery的位置。

编辑(查看代码之后):我想知道“compatible.js”是否覆盖了$函数声明。尝试使用$替换所有使用jQuery的实例。此外,您的Javascript似乎不在<script>标记中。使您的代码看起来像这样:

<head> 
  <link href="main.css" rel="stylesheet" type="text/css"> 
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
  <script type="text/javascript" src="compatible.js"></script> 
  <script type="text/javascript" src="jquery.lightbox-0.5.js"></script>
  <script type="text/javascript">
      jQuery(document).ready(function () { jQuery('a.lightbox').lightBox(); });
  </script>
  <title>Pearce Images</title> 
  <link href="slider.css" rel="stylesheet" type="text/css">

答案 2 :(得分:0)

这可能是复制粘贴问题,但在“1.4.2”之后还有一个额外的空间:

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

答案 3 :(得分:0)

同时检查你是否从compatible.js再次调用jquery ......这可能有时会引起这个问题....

答案 4 :(得分:0)

哦,我觉得自己像个傻瓜:

<script type="text/javascript" src="jq.browser.js"></script>

是一个检测浏览器类型和操作系统的插件,这就是“compatible.js”文件使用的内容。我昨晚显然未能转移那么多次。不知道为什么它打破了jquery函数的其余部分,我认为它只会跳过兼容函数,这是compatible.js的内容:

var links = "a.links,a.trigger";
var folio = "a.portfolio";
//
//
$(document).ready(function() {
if ($.os.name == "mac")
{
$(links).css("fontSize","76.6%");
$(folio).css("fontSize","76.6%");
$(links).css("top","-4px");
$(folio).css("top","5px");
}
});

一切都很好,感谢所有帮助人员!