推迟Javascript加载顺序

时间:2018-05-28 00:31:23

标签: javascript jquery wordpress jquery-deferred

我有一个wordpress i,我有各种各样的脚本。

我已经在标题

中排队了我的jquery和jquery-ui
wp_enqueue_script('jquery', 'https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js', null, null, false);
wp_enqueue_script('jquery-ui', 'https://code.jquery.com/ui/1.10.0/jquery-ui.min.js', null, null, false);

关注我的脚本

wp_enqueue_script('scripts', 'https://eg1234.cloudfront.net/wp-content/scripts/scripts.js', ['jquery','jquery-ui'], '', true);

我还推迟脚本功能,将defer="defer" onload src="..."添加到我的所有脚本

但是我收到错误Uncaught TypeError: $(...).accordion is not a function这是在我的脚本文件中并且依赖于jquery-ui,我相信defer脚本会在之后加载jquery-ui吗?

任何帮助?

2 个答案:

答案 0 :(得分:0)

您是否已将您的JavaScript调用包装在

$(function() {
    console.log( "ready!" );
});

http://learn.jquery.com/using-jquery-core/document-ready/

答案 1 :(得分:0)

需要将jQuery设置为jQuery UI的依赖项。像jQuery UI这样的插件的加载顺序对于jQuery首先加载

非常重要
wp_enqueue_script('jquery-ui', 'https://code.jquery.com/ui/1.10.0/jquery-ui.min.js', ['jquery']);

还要确保页面中只加载了一个版本的jQuery。如果在jQuery UI之后加载另一个版本它将丢失