0

好的,所以当存在 jQuery 冲突时,通常会出现此错误。当加载两个 jQuery 实例或 jQuery UI 在 jQuery 之前加载时,这是很常见的。但在我的网站上,所有 jQuery 加载似乎都很好。我不知道问题出在哪里,我不知道下一步该去哪里。有人有什么主意吗?

TypeError: x.easing[this.easing] 不是函数 | 在 jquery.min.js 中

在这个网页上: http: //a1.nbksite.com/

请考虑。

4

1 回答 1

0

@Arun 感谢您的帮助。我没有意识到核心是定制的,我错误地认为 jQuery UI 核心的 WP 版本包含效果。

在你指出问题后找到了这个相关的线程: How to correct include jquery-ui effects on wordpress

所以这是我最初在functions.php中使用的快速修复:

wp_deregister_script('jquery-ui');
wp_enqueue_script( 'jquery-ui', '//code.jquery.com/ui/1.10.3/jquery-ui.js', array(), '1.0', true );

但是上面的代码被认为是“hack”。根据 WordPress 文档,正确的做法是包含每个单独的库,因为它们与 WordPress 打包在一起 http://codex.wordpress.org/Function_Reference/wp_enqueue_script#Default_Scripts_Included_and_Registered_by_WordPress

所以你应该这样做:

wp_enqueue_script("jquery-effects-core");
wp_enqueue_script("jquery-effects-bounce");

我对此进行了测试,只要之前调用了 wp_enqueue_script("jquery-ui"),它就可以完美运行。然后他们希望您也分别将每个单独的库排入队列!!!

坦率地说,我认为这令人震惊。在大多数情况下,WordPress 是优雅的,但有时它会变得平淡无奇。为什么你会想通过使用一堆单独的库来吸收服务器资源并减慢加载速度,这超出了我的理解。我不敢相信 WP 团队认为这是个好主意。在我看来,最好的做法是:

在 WP 和各种插件加载的所有单个愚蠢脚本上调用 wp_deregister_script 以阻止它们被加载。

然后在自定义构建的 jquery-ui 核心文件上调用 wp_enqueue_script,该文件包含您想要使用的内容——在本例中是包含效果库的 ui 核心。快速解决方法是继续从 jquery.com CDN 加载 jquery-ui.js。无论如何,对我来说,WordPress 认为加载大量单独的库是合乎逻辑的,这对我来说毫无意义。

用于删除大量由 WP 插件加载的单个库并将它们全部替换为自定义 jQuery UI 的最终代码。大大减少资源并提高页面加载速度:

wp_deregister_script('jquery');
wp_enqueue_script( 'jquery', '//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js', array(), '1.0', false );

wp_deregister_script('jquery-ui-core');
wp_deregister_script('jquery-ui-widget');
wp_deregister_script('jquery-ui-mouse');
wp_deregister_script('jquery-ui-accordion');
wp_deregister_script('jquery-ui-tabs');
wp_deregister_script('jquery-ui-resizable');
wp_deregister_script('jquery-ui-button');
wp_deregister_script('jquery-ui-draggable');
wp_deregister_script('jquery-ui-position');
wp_deregister_script('jquery-ui-dialog');
wp_deregister_script('jquery-ui-sortable');

wp_enqueue_script( 'jquery-ui', '//code.jquery.com/ui/1.10.3/jquery-ui.js', array(), '1.0', false );
于 2013-08-25T08:38:03.253 回答