创建小部件但缺少jQuery

时间:2021-01-09 作者:H. M..

使用Astra主题,我无法在前端使用jQuery。它一直在记录Uncaught ReferenceError: jQuery is not defined at VM105:23. 实际上,假设Wordpress配备了jQuery,但我不明白为什么在控制台中会出现“未定义”的错误消息。

为了添加jQuery,我只编写了以下代码,但没有效果:

    function addjq () {
      wp_enqueue_script(\'jquery\', plugin_dir_url(__FILE__) . \'/in/jq.js\', array(\'jquery\'), null, false);
    }
    add_action(\'wp_enqueue_scripts\', \'addjq\');
我在一个小部件中使用这篇文章,它不包括jquery 到前端。实际上是这样的Uncaught ReferenceError. 问题是否与我的jquery 文件url,还是我需要解决的核心问题。你能帮我解决这个问题,并告诉我如何使用jquery 插件内部widget. 以下jQuery代码引发该控制台错误:

jQuery(document).ready(function() {
   // Some Code Goes Here...
  })
PS:我还试图添加一个src 属性,并引入jQuery。RESULT: 错误消失了,但没有运行jQuery代码。即使是我也不能做一个简单的console.log().

提前感谢。。。

2 个回复
SO网友:H. M..

特别感谢@Pat J。问题实际上是我编写的jQuery代码。

    jQuery(document).ready(function() {
      // Some Code Goes Here...
    })
只需看看完整的部分:

    public function doSomethingSpecific() {
        ?>
            <script type="text/javascript" >
                              
                    jQuery(document).ready(function() {
                      console.log(\'Hello World!\');
                    })

                }

            </script>
        <?php
    }
由于上面的函数没有正确排队,而且实际上应该在加载jQuery之前一直运行,所以我收到了Uncaught ReferenceError: jQuery is not defined at VM105:23 错误因此,我所做的是等待页面完全加载,然后调用代码。所以我改变了jQuery 上面所示的部分到下面,很好。问题解决了,绝对不需要排队\'jQuery\'.

    public function webcamcapchur() {
        ?>
            <script type="text/javascript" >
                window.onload = function doLoadThePage(event) {
                    jQuery(document).ready(function() {
                      console.log(\'Hello World!\');
                    })
                }

            </script>
        <?php
    }

SO网友:Pat J

\'jquery\' 已在WordPress中注册了脚本。您尝试将其排队失败,因为WordPress认为您正在尝试注册jquery 使用一个新的URL,它会忽略该URL。看见the notes on wp_enqueue_script().

要加载WordPress现有的jQuery库,请执行以下操作:

function wpse_381226_load_jquery () {
    wp_enqueue_script( \'jquery\');
}
add_action( \'wp_enqueue_scripts\', \'wpse_381226_load_jquery\' );