无法让jQuery进入编辑后脚本

时间:2013-01-13 作者:Scott B

在下面的代码中,除非我硬编码了对jQuery库的引用,否则页面上的jQuery位不会工作。我尝试使用的排队方法有什么问题?

在函数中。php:

if(is_admin())
{

/* LOAD ADMIN SCRIPTS
**********************************/
require_once(TEMPLATEPATH . \'/functions_private.php\');

}
在functions\\u private中。php:

if( \'post.php\' == $pagenow )
{

    add_action(\'admin_print_scripts\', \'my_load_ui_script\');

    function my_load_ui_script()
    {
    wp_enqueue_script(\'jquery\');
    ?>
        <!--<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>-->
        <script>
        if(typeof jQuery!="undefined"){
            alert("You have jQuery loaded");//WILL NOT FIRE UNLESS I HARDCODE JQUERY INCLUDE
        }           

        jQuery(document).ready(function()
        {
        //jquery bits go here
        }

    }//END FUNCTION 

}//END IF

4 个回复
SO网友:Milo

使用admin_enqueue_scripts 钩子添加您自己的自定义脚本。将其放入外部文件中,并使用wp_localize_script 将任何数据从php传递到javascript。jQuery已经在管理端使用,添加一个来自google的脚本标记将打破这一局面。

function wpa80418_admin_enqueue( $hook ) {
    if( \'post.php\' != $hook )
        return;
    wp_enqueue_script(
        \'my_custom_script\',
        get_template_directory_uri() . \'/js/myscript.js\',
        array(\'jquery\')
    );
}
add_action( \'admin_enqueue_scripts\', \'wpa80418_admin_enqueue\' );

SO网友:Muhammad Furqan

默认情况下,WordPress jQuery不支持$。

首先添加jQuery。

function my_scripts_method() {
    wp_enqueue_script(array(\'jquery\'));
}
add_action(\'admin_enqueue_scripts\', \'my_scripts_method\');
替换此代码:

jQuery(document).ready(function()
        {
        //jquery bits go here
        }
使用:

jQuery(document).ready(function($) {
    // $() will work as an alias for jQuery() inside of this function
});

SO网友:diggy

这个admin_footer hook被证明是ScottB代码的正确钩子。但是,通常建议将脚本排队(并声明其jQuery依赖关系),如@Milo的回答中所述

SO网友:kaiser

事件侦听器简单:

脚本在运行时会立即执行,因为它不使用任何javascript事件监听器,比如等待DOM或窗口或任何加载的内容

结束

相关推荐

对于在POST中工作的脚本,jQuery inLuclude似乎仍然是必需的

我有一个jQuery脚本,只要我在帖子中包含对jQuery库的引用,它就可以在WordPress帖子中正常工作。<script src=\"http://code.jquery.com/jquery-latest.js\"></script>据我所知,这不是引用jQuery的正确方法,因为它已经包含在WordPress中(使用v3.4.2)。如果删除内联引用,脚本将失败,控制台将显示“$”未定义。根据讨论jQuery中无冲突模式的文章,我还尝试将“$”替换为“jQuery”。可以查