当第一个函数“准备好”时,有什么方法可以在 javascript 中调用另一个函数
像这样的东西:
ridiculousTimeConsumingFunction().onReady( newFunction() );
为了说明我的例子,你可以看看她: http ://web.cinaird.se/pdf/test.htm
当第一个函数“准备好”时,有什么方法可以在 javascript 中调用另一个函数
像这样的东西:
ridiculousTimeConsumingFunction().onReady( newFunction() );
为了说明我的例子,你可以看看她: http ://web.cinaird.se/pdf/test.htm
荒谬的时间消耗函数();新功能();
newFunction()
完成后会执行ridiculousTimeConsumingFunction()
。
您也可以执行类似的操作ridiculousTimeConsumingFunction(newFunction);
,并将荒谬的TimeConsumingFunction 定义如下:
function ridiculousTimeConsumingFunction(callback) {
for (var i=0;i<1000000000;i++) {
};
callback();
}
这将具有相同的效果。
事实上,放弃所有这些,因为它是一个异步事件,而不是一个耗时的函数......你必须使用回调:
function longFunction (callback) {
setTimeout(function(){
$(".theDiv").css('height', 200 );
callback();
}, 1000);
}
然后调用如下:
longFunction(function () {
$("#info").html(info);
});
像您的示例这样的异步函数通常没有定义“就绪”的概念。通常这种事情是通过回调来完成的:
function asyncFunc(callback) {
setTimeout(function() {
doSomething();
callback();
}, 1000);
}
asyncFunc(function() {alert('Done!');}
如果您的意思是当 DOM准备好时准备好,则没有这样的事件,但是您可以使用jQuery 的 ready
处理程序在 DOM 准备好时触发您的函数。
使用 Javascript,您也可以load
像这样在事件中触发您的函数:
window.onload = function(){
// your function code here
};
或者
window.onload = somefunction;
在您的示例中,“ridiculousTimeConsumingFunction”函数实际上并不需要那么长时间来执行:它只是安排另一个函数在未来运行 1 秒。
如果您想做这样的事情,我建议您查看jQuery UI的效果 API。它允许您将动画一个接一个地“链接”在一起,并且应该达到您所追求的效果。