WP_enQueue_SCRIPT静默失败

时间:2018-02-22 作者:Max

我创建了一个使用引导datetimepicker的插件。因此,我加载相应的js设置依赖项,如下所示:

wp_enqueue_script(\'medapp-datetimepicker-js\', $medapp_boot_timepicker_js, array(
                \'jquery\',
                \'jquery-ui\',
                \'moment\',
                \'medapp-twitter-bootstrap-js\'
            ));

 wp_enqueue_script(\'medapp-frontend-js\', $medapp_script_js, array(
                    \'jquery\',
                  //  \'medapp-datetimepicker-js\',                   
                ),\'\',false);
如果注释行处于打开状态,当然在我的js文件中,我无法访问datetimepicker,当我尝试实例化datetimepicker时,我会出现以下错误:

TypeError: jQuery(...).datetimepicker is not a function
因此,我取消了对注释行的注释,然后加载脚本失败(似乎在第二个wp\\u enqueue\\u脚本之后没有加载任何内容,但没有任何控制台错误),并且页面不会完全显示。

我知道datetimepicker脚本在输出所有registered处理程序时加载正确,如下所示:

function medapp_inspect_scripts() {
            global $wp_scripts;            
            foreach( $wp_scripts->queue as $handle ) {
                MEDAPI::getLogger("MEDAPP")->debug( $handle );
            }
        }
正确输出datetimepicker处理程序。

你知道我怎么调试这个吗?

2 个回复
SO网友:WebElaine

基本JS故障排除-将其简化为基本问题。创建一个新脚本,其中console.log(\'I am working\')alert(\'I am working\') 并将其排队,无任何依赖关系。如果它有效,请将其与您的依赖项一起排队-仍然使用您的控制台或警报来轻松检查它是否有效。如果可行,现在您可以使用您真正想要在脚本中使用的日期选择器来执行一个非常简单的函数。一旦成功,请输入更复杂的自定义代码。

另一个需要检查的常见问题是,您的Datetimepicker版本需要什么版本的jQuery,以及在您的WP版本中加载了什么?也许它们不兼容。

SO网友:Max

非常感谢你@WebElaine,我真的找到了bug。

这是一个级联依赖性问题:

我的datetimepicker排队指定了对时刻的依赖性。js,这是对的,但在我的插件中,这个时刻并没有作为脚本排队。所以我排队等候。在Enquence datetimepicker之前使用js作为其他脚本,它可以正常工作。我只是感到惊讶,我能够将datetimepicker排队,而没有因依赖性而引发错误(可能另一个插件已经将其排队了?)。

非常感谢你。

结束

相关推荐