【问题标题】:Using jQuery Plugins with Wordpress在 Wordpress 中使用 jQuery 插件
【发布时间】:2009-11-14 03:52:19
【问题描述】:

在 Wordpress 中使用 jQuery 插件(Superfish、jQuery UI 等)时遇到了一些麻烦。在我的普通non-Wordpress 站点中一切正常,但 Wordpress 似乎与 JQuery 冲突。一定有办法解决这个问题。

另外,我正在使用 Carrington 框架,如果这会有所不同的话。

在 Safari 的网络检查器中,我收到以下错误:

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

【问题讨论】:

  • 如何在 WordPress 页面中包含 jQuery?最安全的方法可能是使用wp_enqueue_script(),它将加载(如有必要)WordPress 自己的 jQuery 副本。另外,您如何包含给您带来问题的代码?它只是嵌入在页面上,还是在单独的文件中?

标签: jquery wordpress jquery-ui carrington


【解决方案1】:

Wordpress 和 jQuery 不会相互冲突。 Wordpress 在服务器上,jQuery 在客户端上,除了处理 Wordpress 返回的 HTML 之外,两者之间并没有太大的关系。如果浏览器未正确加载/解析定义 jQuery 对象的 javascript,您将收到该错误。三种故障排除解决方案:

  1. 检查并确保您的客户端正在发出对 jQuery javascript 文件的请求。如果不是,则请求文件的脚本标记可能未正确包含在您的页面中。
  2. 如果它正在发出请求,请确保它是成功的。如果响应是 404 代码或其他错误,请修复导致它的任何原因(错误的 url、不正确的权限等)
  3. 我注意到在使用缩小版的jQu​​ery 时,浏览器在尝试解析代码时偶尔会抛出错误,导致您在后面的代码中尝试使用jQuery 函数时遇到引用错误。如果您使用的是 jQuery 的缩小版,请尝试切换到未压缩的版本,看看是否能解决您的问题。

【讨论】:

  • 不一定正确。 jQuery 包含在 WordPress 管理页面中。此外,某些主题可能包含会发生冲突的 JS 库,例如 Prototype。
  • jQuery 加载良好,所有插件和我编写的代码也是如此。将尝试不使用 jquery ui 的缩小版。
  • 你说一切都很好......那么你什么时候得到错误?当浏览器尝试执行$(window).load() 函数时,您应该会收到错误消息。我的猜测是第三件事,Safari 不喜欢缩小的 jQuery。
【解决方案2】:

只要把你所有的js放在

<?php
    wp_head(); 
?>

部分。如果您对单个文件有任何问题,请全行:

var $j = jQuery.noConflict();

到顶部。

【讨论】:

  • 如果jQuery.noConflict() 更改了任何内容,则意味着您在 DOM 中有其他对象尝试使用名称 $。您是否在页面上使用了另一个 javascript 框架?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多