如何在WordPress中使用jQuery时生成`$(document).on`可执行文件?

时间:2018-05-28 13:41:17

标签: javascript php jquery wordpress

我试图将GDPR plugin v2.0.6添加到一个由不同的人维护了大约7年的旧WordPress网站。那些人不在我现在工作的公司里。

安装此插件后,我发现错误

  

未捕获的TypeError:e(文档).on不是函数

我在打开网站时在gdpr-public.js文件中

将代码从$(document).on更改为jQuery(document).on后,此错误消失了。但是,我们不鼓励修改插件中的代码。

WordPress的版本是4.7。 PHP的版本是5.4

根据此article,似乎WordPress最初只支持jQuery(document).on。人们必须添加额外的代码才能使$(document).on正常工作。

我还尝试将GDPR插件安装到新的WordPress 4.7。但它并没有显示错误:

  

未捕获的TypeError:e(文档).on不是函数

可能导致$(document).on无法执行的原因是什么?

------------------------------编辑---------------- ----------------

WordPress网站有自定义主题。它似乎没有在主题中使用默认的jQuery。因为我在wp-content/themes/customTheme/functions.php

下找到了以下代码
// Load jQuery
if ( !is_admin() ) {
   wp_deregister_script('jquery');
   wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"), false);
   wp_enqueue_script('jquery');
}

当我删除此代码时,访问网站时会出现不同的错误:

enter image description here

看起来很难处理这个传统网站。

1 个答案:

答案 0 :(得分:-2)

如果console.log(typeof $)undefined,您可以尝试将其指向jQuery,如下所示:

if (!window.$ && window.jQuery) {
    window.$ = window.jQuery;
}

或更好

jQuery(document).ready(function( $ ) {
    window.$ = $;
});

确保已经加载了jQuery。