javascript - 我如何等待 Cordova 和 jQuery 加载它们的库?

标签 javascript jquery cordova dom-events

jQuery 具有“就绪”功能:

$(function() {...});

cordova 文档说要添加一个事件监听器:

document.addEventListener("deviceready", onDeviceReady, false();
function onDeviceReady(){...}

我是否需要同时调用这两个库以确保在使用任何引用它们的代码之前加载这两个库?

嵌套它们是否有意义,即:

$(function(){
    onDeviceReady(){...}
}

只是想找出最好的方法,也许我想多了

最佳答案

JS文件是顺序加载的。因此,在您的 HTML 中,只需将您的 .js 文件放在 jQuery 和 cordova 之后,它就不会在两者都加载之前运行。

<script src="jQuery"></script>
<script src="cordova"></script>
<script src="yourScript"></script> <!-- this won't run before both jQ and cordova are loaded -->

至于就绪事件,如果你不想嵌套它们,你可以为所有库就绪时构建自己的事件:

var listener = {
    jquery: false,
    cordova: false,
    fire: function(e) {listener[e] = true; if (listener.jquery && listener.cordova) go();
};
document.addEventListener("deviceready", function(){listener.fire('cordova'), false();
$(document).ready(function(listener.fire('jquery')){});

function go() {
// your code here
}

这会起作用,并且 go() 会在加载所有内容时触发,但是我真的不确定您是否真的需要所有这些,是否有更简单的方法来做到这一点。

关于javascript - 我如何等待 Cordova 和 jQuery 加载它们的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19365777/

相关文章:

javascript - 如何使用 Material ui reactjs 禁用从今天开始的过去日期?

javascript - 使用 Jasmine 监视构造函数

node.js - Cordova:找不到模块主体解析器

javascript - Angular 用户界面选择不起作用

javascript - 将鼠标悬停在父 div 上时同时更改图像和标题

jquery - 每次将浏览器大小调整为小于 1600x1020 时,从值为 100 的 var 中减去 1

javascript - 如何在 jQuery 中填充月份数数组 - Javascript

android - 屏幕自动锁定后继续运行应用程序 - Phonegap (Android/iOS)

ios - 应用程序的 Info.plist 必须包含 NSLocationAlwaysUsageDescription 和 NSLocationWhenInUseUsageDescription。

php - 带有过多嵌套字符串引号的 Post 参数