Firebug表示已加载jQuery,但未定义$()和jQuery()

时间:2011-05-12 作者:vitto

我试图用一些简单的jQuery脚本测试我的wordpress页面,但它不起作用。

我在脚本中加载了wp_enqueue_script(\'jquery\'); 在里面functions.php 如中所述wordpress guide 但有些东西有问题。

我正在使用FireBug 安装于Firefox 4 如果我查看一下加载的脚本列表,就可以了,但它也会返回错误jQuery is not defined

我已经按照noConflict 模式,但对我仍然不起作用:

// functions.php
<?php
    function init_scripts () {
        if (!is_admin()) {
            wp_enqueue_script(\'jquery\');
        } 
    }
    add_action(\'init\', \'init_scripts\');
?>

// header.php
<script type="text/javascript">
    (function($) {
        $(document).ready(function() {
            alert(\'hello?\');
        });
    }(jQuery));
</script>
我错在哪里?

我试过了this tutorial 而且据说这里没有定义jQuery对象:

// jquery from ajax.googleapis.com is correctly loaded
$j=jQuery.noConflict(); // firebug says jQuery is not defined by here

$j(document).ready(function(){
    alert(\'test\');
});

2 个回复
最合适的回答,由SO网友:Chris_O 整理而成

jQuery需要在包装器之外,如下所示:

<script type="text/javascript">
(function($) {
    $(document).ready(function() {
        alert(\'hello?\');
    });
})(jQuery);
</script>
编辑:A better way would be:

jQuery(document).ready(function($) {
// $() will work as an alias for jQuery() inside of this function
});
还要确保所有内联脚本标记AFTER 您的呼叫wp_head();

And even better way:

创建函数,而不是内联添加脚本标记。包含所有额外函数等的js文件。将其作为依赖项与jQuery排队。

add_action( \'template_redirect\', \'c3m_enqueue_scripts\' );
function c3m_enqueue_scripts() {
    wp_register_script( \'custom-functions\', TEMPLATEPATH .\'/path/to/functions.js\', array( \'jquery\' ) TRUE);
    wp_enqueue_script( \'jquery\' );
    wp_enqueue_script( \'custom-functions\' );
}

SO网友:Shelly

您的init调用是正确的,它将加载jQuery,其中wp\\u head()调用位于标头中。php文件。

在标头中的wp\\u head()调用之后。php文件,添加:

<script type="text/javascript">
  jQuery(document).ready(function($){
    alert(\'hello?\');
  });
</script>
将$放在function()部分中,将允许您使用常规$,而不会发生冲突。

结束

相关推荐

Disable Jquery UI post tabs

嘿,大家好,我在用Jquery UI tabs 使用WordPress Post Tabs plugin 它就像一个符咒。但是,我想自动禁用或隐藏没有任何数据的选项卡。我曾多次使用Jquery,但我迷失在这一混乱中。任何帮助都将不胜感激。谢谢Jquery Tabs Information from the official site使用指定的禁用选项初始化选项卡。$( \".selector\" ).tabs({ disabled: true }); 在初始化之后获取或设置禁用选项。var di