我基本上試圖完成以下任務。我想在頁面加載5秒之後,它會將變量設置爲true。基本javascript問題:5秒後,將變量設置爲true
一旦成立,它會繼續給予警報「真實」..現在。
如果有人在5秒鐘之前嘗試點擊該按鈕,則會使警報失效。
以下是我設法輸入的內容。不完全正常工作。謝謝:)
我基本上試圖完成以下任務。我想在頁面加載5秒之後,它會將變量設置爲true。基本javascript問題:5秒後,將變量設置爲true
一旦成立,它會繼續給予警報「真實」..現在。
如果有人在5秒鐘之前嘗試點擊該按鈕,則會使警報失效。
以下是我設法輸入的內容。不完全正常工作。謝謝:)
你有正確的想法,但你有一個小的問題與變量範圍。爲了減少麻煩,這真是最好的,從使用上setTimeout
字符串的eval選項脫身(這是在教程各地的網頁顯示,我知道),並可以使用匿名函數:
var link;
function loading(){
setTimeout(function(){
link = true;
}, 5000);
}
這樣,你」我會準確地知道link
是在哪裏申報的,範圍很清晰。
試試這個:
setTimeout(function() { window.link = true; }, 5000);
這將設置全局變量 「鏈接」 到真正的5秒後,將滿足您的if語句。
編輯 如果你是一個初學者,但更好的方法來完成,這是使用功能範圍,而不是全球範圍內,這可能是一個有點複雜。
在你的情況,聲明定時器功能是這樣的:
var timer = (function() {
var link = false;
setTimeout(function() { link = true; }, 5000);
return function() {
alert(link);
};
}());
這樣,匿名函數返回成爲定時器()其他功能,但這種方式定時訪問其「私有」鏈接變量。欲瞭解更多信息,請登錄Mozilla's article on JavaScript variable scope
Marius,雖然我非常感謝您爲編輯所做的努力,但您移除的花括號是代碼的必要部分(它關閉了初始功能塊) 回滾。 – Matt