2009-11-14 104 views
0

有一点使用使用Wordpress的jQuery插件(快鱼,jQuery用户界面等)的麻烦。一切工作正常在我的普通non-Wordpress网站,但Wordpress似乎与JQuery冲突。必须有一些方法来解决这个问题。使用jQuery插件与WordPress

另外,我使用的卡林顿框架,如果有差别。

在Safari的网络督察,我得到这些错误:

ReferenceError: Can't find variable: jQuery 
ReferenceError: Can't find variable: $ 
+0

你是如何jQuery的,包括在自己的WordPress网页?最安全的办法可能是使用[wp_enqueue_script()](http://digwp.com/2009/06/including-jquery-in-wordpress-the-right-way/),这将载入(如有必要)的WordPress自身jQuery的副本。 另外,你是如何包含代码给你的问题?它只是嵌入在页面上,还是在单独的文件中? – 2010-09-09 14:17:28

回答

2

的WordPress和jQuery不会互相冲突。 Wordpress在服务器上,jQuery位于客户端,除了处理由Wordpress返回的HTML之外,两者并没有太大的关系。如果定义jQuery对象的JavaScript没有被浏览器正确加载/解析,那么你会得到那个错误。三种故障排除解决方案:

  1. 检查并确保您的客户端正在为jQuery javascript文件发出请求。如果不是,那么请求该文件的脚本标记可能不会正确包含在您的页面中。
  2. 如果提出请求,以确保它的成功。如果响应是一个404码或其他错误,解决什么原因造成的(不良URL,不正确的权限,等。)
  3. 我注意到,使用jQuery的缩小的版本时,浏览器偶尔会引发错误时试图解析代码,导致您在尝试稍后在代码中使用jQuery函数时遇到的引用错误。如果您使用jQuery的缩小版本,请尝试切换到未压缩的版本并查看是否可以解决您的问题。
+0

不一定是正确的。 jQuery包含在WordPress管理页面中。另外,一些主题可能会包含像Prototype这样会冲突的JS库。 – ceejayoz 2009-11-14 04:10:59

+0

像所有的插件和我写的代码一样,jQuery加载正常。将尽量不使用jQuery UI的缩小版本。 – Tim 2009-11-14 04:29:44

+0

你说一切都很好......你什么时候得到错误呢?如果浏览器试图执行'$(window).load()'函数,你会得到错误。我的猜测是这是第三件事,并且有一些关于Safari不喜欢的缩小版jQuery。 – 2009-11-14 04:48:57

1

只要把所有的JS下

<?php 
    wp_head(); 
?> 

部分。如果您在单个文件中遇到任何问题,请将所有行全部删除:

var $j = jQuery.noConflict(); 

到顶部。

+0

如果'jQuery.noConflict()'改变了任何东西,这意味着你在DOM中有一些其他的对象试图使用'$'这个名字。你在页面上使用另一个JavaScript框架吗? – 2009-11-14 04:51:32