-1

我使用 wordpres 并默认加载 jquery 核心的库加载它是这样的:

js/jquery/jquery.js?ver=1.8.3

当我去插入我自己的 jquery 脚本时,结果它不起作用,事情很简单,例如这段代码不起作用:

$(document).ready(function(){

$("#header_sun").fadeIn(4000).delay(4000).fadeOut(4000);
$("body").css("background","#C3DAEC");

});

我的代码示例只有在我输入 wordpress 的头部时才有效:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

如果我把这段代码放到wordpress的核心jquery之前,我在jquery中创建的所有脚本都可以工作,如果不放这个就不行,我不明白为什么会发生这种情况,因为我放的jquery直到jquery版本的核心是一样的但版本最低

这很奇怪,我尝试了所有方法,但不明白为什么我的代码没有正常工作,只有当我放置或调用 jquery 的远程库时才有效,并且不能与 wordpress 的加载 jquery 一起工作

问候 !

4

4 回答 4

0

看看你的调试器控制台,我想你得到一个'jQuery未定义'错误?

如果是这样,这听起来像是 jQuery 的冲突问题,因为 Wordpress 也使用没有冲突的方式加载 jQuery。使用 $ 而不是 jQuery 可能会导致其他也使用 $ 的库出现问题。您将需要添加一个无冲突函数,然后将您的 jQuery 放入其中。

jQuery.noConflict();
(function($) {
  $(function() {
    //You can use $ here.
  });
})(jQuery);
// If you have any, your other non jQuery code which uses $ also, can go after here as normal.
于 2013-05-14T09:31:10.217 回答
0

试试看,

jQuery(document).ready(function(){
   jQuery("#header_sun").fadeIn(4000).delay(4000).fadeOut(4000);
   jQuery("body").css("background","#C3DAEC");
});

因为,可能会有更多libraries类似prototype的,mootools等等。用在wordpress所以可能有冲突$

于 2013-05-14T08:56:44.050 回答
0

我对 Wordpress 不是很熟悉,但我相信它会以“无冲突”模式加载自己的 jQuery 版本,这意味着您不能使用$for 的简写jQuery(还有其他 JavaScript 框架也使用$)。您可以做的是使用立即调用的函数表达式来允许您这样做,但是:

(function($) {
    // $ refers to jQuery only inside here
    $(document).ready(function(){
        $("#header_sun").fadeIn(4000).delay(4000).fadeOut(4000);
        $("body").css("background","#C3DAEC");
    });
})(jQuery);

这与开发 jQuery 插件时使用的语法相同,因为您不能保证$会引用jQuery.

于 2013-05-14T08:54:19.793 回答
0

我猜您的代码与 wp-head() 中的 jquery 冲突

将此代码插入functions.php

function fix_noconflict() {
    wp_deregister_script( 'jquery' );
    wp_register_script( 'jquery' , 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' );
}
add_action( 'wp_enqueue_scripts' , 'fix_noconflict' );
于 2013-05-14T09:04:21.030 回答