2010-04-29 47 views
1

编辑:贴头码 编辑2:澄清PHP现场后jQuery的失败去住

我一直在设计用于使用JQuery周部位。我没有本地服务器或测试服务器,所以我只是通过FTP创建了一个目录'/ testing'。在测试目录中一切都很好。

我试图通过将'/ testing'中的所有文件移动到根目录并且相应地更改所有文件路径和脚本源来今晚启用。该网站加载,但与JQuery相关的所有内容都不起作用。 JavaScript控制台给出的(就像从一个插件的例子)错误:

“$ .os.name”不是一个函数

我在亏损适合做什么。我更改了引用JQuery库的路径,安装了新的JQuery副本(到一个新目录)等等。

有一个wordpress安装在不同的目录'/ blog'中。我已经阅读了有关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')。 (对不起,没有代码标记,但我不能处理这个降价的事情)。我只是用它来为所有页面的页眉和页脚提取相同的代码,这样如果需要进行更改,我只需更改一个代码块。

非常感谢您的帮助。

+0

我编辑了我的答案。看看'compatible.js'的功能会不错。 – Strelok 2010-04-29 06:06:07

回答

0

首先尝试从浏览器中下载jquery.js文件(或者其他名称)。转到查看源代码。某些浏览器会自动突出显示链接,以便您点击它们。查看jquery.js文件是否在您访问它时加载。如果没有,你有一个服务器配置问题。

否则,请创建一个使用您的jQuery脚本的简单HTML文件。如果它工作得很好,你将会隔离这个问题。

要测试的一件事是看看jQuery变量是否仍然可用。 $可能已被更改为引用另一个JavaScript库。如果是这样的话,你不必用jQuerys替换所有的$;您可以通过包装你这样的jQuery的使用代码使用其他插件让你的代码,代码兼容:

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

我能够下载的文件(如果你的意思是指我的浏览器地址到jquery文件) 我创建了一个简单的HTML页面,通过jquery简单的警报,没有运气。 我必须在早上尝试适应性问题,可能实际上很快就需要睡眠。 – 2010-04-29 05:47:02

0

要解决问题,尝试在http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js指向<script>标签的jQuery的谷歌AJAX库源。如果这有效,那么你只是搞乱你的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"> 
+0

不幸的是,试图谷歌的来源,同样的问题。我已经添加了所需的头部代码(对不起,如果它看起来很奇怪,我很难用降价...)。 – 2010-04-29 05:41:04

0

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

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

如果只是这样简单,只是一个副本和过去的恐惧。感谢您的好意。 – 2010-04-29 05:53:26

0

还要检查,如果你再打电话给jQuery的从compatible.js ......这有时可能会导致此问题....

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"); 
} 
}); 

一切都很好,感谢所有帮助家伙!