執行功能我有這樣的javascript代碼:陸續
if (direction !== "leftnav") {
// DO THINGS
};
setTimeout(function() {
//DO OTHER THINGS AFTER THE FIRST THING
}, 1000);
是否有可能在第一,而不必使用超時事件後執行2E功能?
非常感謝您的幫助:)
執行功能我有這樣的javascript代碼:陸續
if (direction !== "leftnav") {
// DO THINGS
};
setTimeout(function() {
//DO OTHER THINGS AFTER THE FIRST THING
}, 1000);
是否有可能在第一,而不必使用超時事件後執行2E功能?
非常感謝您的幫助:)
是的,這是可能的。以下是使用您提供的唯一代碼的示例:
if (direction !== "leftnav") {
// DO THINGS...
// THEN
doOtherThings();
// THEN
doMoreThings();
};
var doOtherThings = function(){
//DOING OTHER THINGS
}
var doMoreThings = function(){
//DO EVEN MORE THINGS
}
沒有upvotes?唉,你們今天是螃蟹吧:] – pixelbobby 2011-05-12 17:14:14
JavaScript的,如果你在有if語句阻止運行從上到下。如果是這樣,你可以把代碼放在if語句的正下方,在超時之外,它將正常運行。如果它是異步的,那麼可以使用一個回調函數,當第一個函數完成時啓動第二個函數。
下面提供的例子並不是真正有效的做事方式,但更多地用於說明我在上面討論的內容。在write()
函數中,你可能正在做一個AJAX調用,或者等待用戶點擊某個東西,或者你有什麼。解釋者繼續到下一行,該部分將立即寫入,並按照順序排列。
JS
var write = function (v, cb) {
setTimeout(function() {
document.write(v);
cb && cb();
}, 1000);
}
if (true) {
write("I'm not blocking, blah<br/>", function() {
document.write("Running<br/>");
});
}
if (true) {
document.write("I'm blocking, blah<br/>");
}
document.write("Running<br/>");
輸出
I'm blocking, blah
Running
I'm not blocking, blah
Running
+1好帖子。 – pixelbobby 2011-05-12 17:15:03
你只需要調用函數的順序你想
function foo(){
//code
}
function bar(){
//other
}
bar();
foo();
像這樣,bar
將在foo
之前調用。
我不明白這個問題;爲什麼不能在「if」塊中包含「//在第一件事後做其他事情」? – 2011-05-12 13:43:06
需要更多示例代碼來回答此問題。你在第一個「//做什麼」中做了一個AJAX調用?如果是這樣,你只需使用['callback'](http://api.jquery.com/jQuery.ajax/)。 – pixelbobby 2011-05-12 13:43:25
if(direction!==「leftnav」){ //做什麼 //在做第一件事後做其他事情 } – 2011-05-12 13:43:50