加载POST编辑屏幕时触发jQuery函数

时间:2019-03-10 作者:samjco

正在尝试使此函数正常工作。但要继续jQuery not defined 错误

为了让jQuery正常工作,我在这里尝试了许多变体:https://blog.templatetoaster.com/fix-jquery-is-not-defined-error/

add_action( \'load-post.php\', function () { 

$status = "status-started";

if($status == \'status-started\'):
    ?>
    <script>
        jQuery(document).ready(function($) { 
            /* write your JavaScript code here */
            $(\'.btn-start\').trigger(\'click\');
            console.log(\'Started successfully!\');
        });
    </script>

<?php 
endif;

} );

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

您过早地挂接了jQuery。当load-(page) 操作已启动。

使用admin_print_scripts 打印内联脚本。该操作发生在脚本排队之后。

这是您的原始代码,使用admin_print_scripts:

add_action( \'admin_print_scripts\', function () { 

$status = "status-started";

if($status == \'status-started\'):
    ?>
    <script>
        jQuery(document).ready(function($) { 
            /* write your JavaScript code here */
            $(\'.btn-start\').trigger(\'click\');
            console.log(\'Started successfully!\');
        });
    </script>

<?php 
endif;

} );
使用的替代方案admin_print_scripts 将使用admin_print_footer_scripts, 这本质上是相同的,但在页脚而不是页眉。一般来说,这两种方法都可以,无论是在页眉还是页脚中,这有时是一个偏好的问题,有时是一个必要的问题。因此,这将取决于实际用例。

如果有人想知道我为什么不建议使用另一个钩子,比如wp\\u head或wp\\u footer,那么有两个原因。首先,这不是那些钩子的目的。使用它们会使您的脚本与它们真正应该位于的位置脱节(尽管在很多情况下,它们工作得很好)。其次,它们不是特定于管理的挂钩。a的问题load-(page) 操作表明这是一个管理端进程,因此请使用适当的管理端挂钩。

关于各种“排队”挂钩的使用,我也会说类似的话。首先,不要使用非特定于管理端的排队(专门针对这篇原始文章,而不是泛泛而谈)。其次,排队是针对库和静态脚本的。如果要打印脚本(尤其是那些可能是动态的脚本),请改用\\u print\\u scripts挂钩。

SO网友:butalin

文档准备就绪后,必须在文件末尾调用jQuery。

尝试将操作添加到wp_footer 或使用wp_enqueue_script .

相关推荐

JQuery AJAX PHP函数调用返回[对象对象]

我想使用jQuery Ajax重新加载页面。我有下面的代码,但是,它不工作,正在返回错误[object Object]这只是一个简单的语法问题,还是我的整个逻辑都有问题?它在没有Javascript的情况下工作得很好,但我认为使用jQuery Ajax的UI更直观。functions.php//enqueue scripts function my_theme_enqueue_scripts() { wp_enqueue_script(\'jquery-ui\', \'https