在谷歌的Chrome浏览器中运行我的(相当复杂的)JavaScript/jQuery应用程序,它似乎$(document).ready会在某些JavaScript文件尚未加载时触发.
相关代码(简化):
在我的HTML文件中
<script>var httpRoot='../../../';var verifyLoad = {};</script>
<script src="../../../globalvars.js"></script>
<script src="../../../storagekeys.js"></script>
<script src="../../../geometry.js"></script>
<script src="../../../md5.js"></script>
<script src="../../../serialize.js"></script>
...
<script src="../../../main.js"></script>
Run Code Online (Sandbox Code Playgroud)
作为除main.js之外的每个.js文件的最后一个语句:
verifyLoad.FOO = true; // where FOO is a property specific to the file
Run Code Online (Sandbox Code Playgroud)
例如
verifyLoad.jquerySupplements = true;
verifyLoad.serialize = true;
Run Code Online (Sandbox Code Playgroud)
在main.js中:
$(document).ready(function() {
function verifyLoadTest (scriptFileName, token) {
if (!verifyLoad.hasOwnProperty(token)) {
console.log(scriptFileName + ' not properly loaded');
};
};
verifyLoadTest('globalvars.js', 'globalvars');
verifyLoadTest('storagekeys.js', 'storagekeys');
verifyLoadTest('geometry.js', 'geometry');
verifyLoadTest('md5.js', 'geometry');
verifyLoadTest('serialize.js', 'serialize');
...
}
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,我看到其中一些触发器.这与我的理解不符$(document).ready.我错过了什么?
myImageView.getImageMatrix()一旦我的活动准备就绪,我正试图从方法中获取值.我尝试使用onCreate(),onStart(),onResume()方法,但我得到的矩阵是默认的.
如果我调用myImageView.getImageMatrix()OnClickListener触发,在我的活动可见后,我会得到正确的值.
为了更清楚:
调用getImageMatrix onStart = Matrix{[1.0, 0.0, 0.0][0.0, 1.0,
0.0][0.0, 0.0, 1.0]}
调用getImageMatrix onClick = Matrix{[0.77488154, 0.0,
7.6717987][0.0, 0.77488154, 0.0][0.0, 0.0,
1.0]}
编辑:我所说的多次触发的意思是 newjob() 将每 5 秒触发 3 次...所以在 20 秒内我将触发它 12 次,而不是我想要的 4 次。所以它每 5 秒触发多次,而不是每 5 秒触发一次。
我有一个使用 Toastr 创建的函数,用于在我的 Web 应用程序上显示消息。我最终会将其与 API 的 ajax 请求联系起来,以确定是否显示消息,但现在我只是测试它的外观。
我正在设置一个间隔,但它会多次触发其中的函数(通常为 3 次)。
$(document).ready(function() {
setInterval(function () {
newJob();
}, 5000);
});
Run Code Online (Sandbox Code Playgroud)
我无法执行 setInterval( function(e) { } 因为 e 未定义,因为没有与之关联的事件,点击时,我使用了 e.stopImmediatePropagation(); 让它只触发一次。我怎样才能如果我没有 e,则按设定的时间间隔停止立即传播?
谢谢。
编辑:完整代码:
var newJob = function(e) {
var i = -1;
var $toastlast;
var getMessage = function () {
var msgs = ["There's a new job in the job dispatch queue", …Run Code Online (Sandbox Code Playgroud) 几个月前,我在Facebook平台上进行Javascript编程,其中主要框架如Dojo,ExtJS,jQuery,Prototype等不一定有效.这让我发现了一些仅提供CSS选择功能的框架,用于可能的移植,即Sizzle(在jQuery中使用)和Peppy.
我记得当时还遇到了一个迷你框架,它主要提供了一些主要框架提供的文档/ onready功能.但是我不记得这些(实际上只有一个)我做Sizzle和/或Peppy的方式.任何人都可以指向我这样一个Javascript迷你框架,主要提供文档/ onready功能吗?谢谢
我有一个从主 html 文件加载的 app.js 文件。现在,这个 app.js 文件在单击其中定义的链接时,会使用 Ext.require() 动态加载第二个 js 文件。加载发生正常,因为我已经定义了 Ext.Loader.setPath() 等,第二个脚本包含诸如 Ext.require() 之类的行来导入一些 ui 库,然后是 onReady(),我的问题是 onReady 永远不会被触发,我不能将小部件渲染代码放在 onReady() 之外。onReady 是否仅适用于同步加载脚本?
非常感谢
在javascript中,当第一个函数“准备好”时,有什么方法可以调用另一个函数
像这样:
ridiculousTimeConsumingFunction().onReady( newFunction() );
Run Code Online (Sandbox Code Playgroud)
为了说明我的例子,你可以看看她:http : //web.cinaird.se/pdf/test.htm
onready ×6
javascript ×4
jquery ×2
android ×1
chaining ×1
document ×1
events ×1
extjs ×1
frameworks ×1
image ×1
matrix ×1
setinterval ×1