jquery 不能在 wordpress 中工作

Posted

技术标签:

【中文标题】jquery 不能在 wordpress 中工作【英文标题】:jquery not working in wordpress 【发布时间】:2011-04-14 05:56:23 【问题描述】:

Wordpress 没有加载 jquery - 我认为这可能与它绝对加载文件的事实有关,而不是相对加载,它不会转到 url(萤火虫说访问被拒绝限制 uri) .我已经测试了 vanilla javascript 并且可以正常工作,但是一旦我尝试在$(document).ready(function()) 中执行最基本的功能,它就会停止工作.. 有没有办法阻止 wordpress 将网站 uri 附加到链接文件并参考相反,它们是相对的,因为我认为这可能会解决它。

输出头部如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head profile="http://gmpg.org/xfn/11">

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <title>simplespace &mdash; not quite ready yet</title>



<meta name="generator" content="WordPress 3.0.1" /> <!-- leave this for stats -->

<link rel="stylesheet" href="http://simplespace.co.nz/wp-content/themes/blass2/style.css" type="text/css" media="screen" />

<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://simplespace.co.nz/feed/" />

<link rel="alternate" type="text/xml" title="RSS .92" href="http://simplespace.co.nz/feed/rss/" />

<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="http://simplespace.co.nz/feed/atom/" />

<link rel="pingback" href="http://simplespace.co.nz/xmlrpc.php" />

<link rel="shortcut icon" href="http://simplespace.co.nz/wp-content/themes/blass2/favicon.ico" />

    <link rel='archives' title='September 2010' href='http://simplespace.co.nz/2010/09/' />

<link rel='stylesheet' id='sociable3-css'  href='http://simplespace.co.nz/wp-content/plugins/sociable-30/sociable.css?ver=5.10' type='text/css' media='all' />
<script type='text/javascript' src='http://simplespace.co.nz/wp-includes/js/jquery/jquery.js?ver=1.4.2'></script>
<script type='text/javascript' src='http://simplespace.co.nz/wp-content/plugins/wordpress-flickr-manager/js/jquery.lightbox.js?ver=3.0.1'></script>
<script type='text/javascript' src='http://simplespace.co.nz/wp-content/plugins/wordpress-flickr-manager/js/wfm-lightbox.php?ver=3.0.1'></script>
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://simplespace.co.nz/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://simplespace.co.nz/wp-includes/wlwmanifest.xml" /> 
<link rel='index' title='simplespace' href='http://simplespace.co.nz/' />
<meta name="generator" content="WordPress 3.0.1" />
<script type="text/javascript" src="http://simplespace.co.nz/wp-content/plugins/audio-player/assets/audio-player.js?ver=2.0.4.1"></script>
<script type="text/javascript">AudioPlayer.setup("http://simplespace.co.nz/wp-content/plugins/audio-player/assets/player.swf?ver=2.0.4.1", width:"400",animation:"yes",encode:"yes",initialvolume:"60",remaining:"no",noinfo:"no",buffer:"5",checkpolicy:"no",rtl:"no",bg:"dcf2fa",text:"333333",leftbg:"dcf2fa",lefticon:"333333",volslider:"666666",voltrack:"cfcfcf",rightbg:"9ee1f7",rightbghover:"dcf2fa",righticon:"333333",righticonhover:"333333",track:"FFFFFF",loader:"9ee1f7",border:"CCCCCC",tracker:"dcf2fa",skip:"666666",pagebg:"FFFFFF",transparentpagebg:"yes");</script>

<!-- WFM INSERT LIGHTBOX FILES -->
<link rel="stylesheet" href="http://simplespace.co.nz/wp-content/plugins/wordpress-flickr-manager/css/lightbox.css" type="text/css" />
<!-- WFM END INSERT -->


<script type='text/javascript'>
$(document).ready(function() 
  alert('test');
);
</script>
</head>

【问题讨论】:

请在 中添加您现在拥有的内容。看来您可能没有在 $(document).ready(function()) 之前的标题中包含 jquery 文件 【参考方案1】:

Wordpress 将 jQuery 置于禁用 $() 功能的无冲突模式。除非您在 jQuery 中禁用无冲突模式,否则您必须使用 jQuery() 而不是 $()

【讨论】:

【参考方案2】:

试试这个:

为那些面临同样问题的人提供完整的答案

您可以将javascript 包装在一个自调用函数中,然后将jQuery 作为参数传递给它,使用$ 作为局部变量名。例如:

(function($) 
   $(document).ready(function()
      alert('test');
   );
(jQuery));

WordPress 包含的jQuery 库设置为noConflict() 模式。这是为了防止与 WordPress 可以链接的其他 JavaScript 库的兼容性问题。

noConflict() 模式下,jQuery 的全局$ 快捷方式不可用。

【讨论】:

【参考方案3】:

我查看了网站,jquery 正在加载。这个:

<script type='text/javascript'>
$(document).ready(function() 
  alert('test');
);
</script>

无法工作,因为 WordPress 在无冲突模式下使用 jquery。这个:

jQuery(document).ready(function($)
alert('test');
    );

是在无冲突模式下应该如何调用它。灯箱插件也抛出错误:

Uncaught TypeError: Object # has no method 'lightBox'

【讨论】:

以上是关于jquery 不能在 wordpress 中工作的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个 jQuery AJAX PUT 可以在 Chrome 中工作,但不能在 FF 中工作

jQuery Ajax 在 IE 6/7/8 中不工作,在 FF/Safari/Chrome 中工作

jquery on('change'......不能在多个标签中工作[重复]

为啥以下 jquery 可以在 jsfiddle 中工作,但不能在任何浏览器上工作? [关闭]

Rails - jQuery 不能在 Heroku 的生产环境中工作

无法让javascript和Jquery在functions.php中工作