欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript進(jìn)階教程(第三課第二部分)第2/2頁

 更新時間:2007年04月06日 00:00:00   作者:  

    定時器的功能主要在于設(shè)定某個未來的時間,讓Javascript到時執(zhí)行某個語句:

    var the_string = "hello";
    the_timeout = setTimeout("alert(the_string);", 60000);

    這兩行指令讓JavaScript等待一分鐘然后彈出一個提示框顯示the_string變量所包含的內(nèi)容。所以一分鐘后JavaScript就尋找叫做the_string的變量并調(diào)用alert()。但是問題是一分鐘后該變量中所包含的內(nèi)容可能是別的什么。所以如果你把這兩行代碼放在一個函數(shù)內(nèi),setTimeout有可能會報錯。例如在下例中:

    function alertInAMinute()
    {
        var the_string = "hello";
        the_timeout = setTimeout("alert(the_string);", 60000);
    }

    然后你在某個鏈接中調(diào)用這個函數(shù):

    <a href="#" onClick="alertInAMinute(); return false;">blah!</a>

    可能會出錯。因為你定義名為the_string的變量時用的是var,而當(dāng)你在一個函數(shù)內(nèi)使用var時,Javascript將其理解為該變量只存在于該函數(shù)中。一旦離開該函數(shù)而進(jìn)入另一個函數(shù)后,該變量就會從Javascript的內(nèi)存中消失。所以當(dāng)后來需要調(diào)用該變量時,Javascript從它的內(nèi)存中是不可能找到該變量的,錯誤因此就產(chǎn)生了。

    產(chǎn)生問題的原因在于你將一個變量傳遞給setTimeout。你可以通過將變量的值而不是變量本身傳遞給setTime來避免這個問題:

    function alertInAMinute()
    {
        var the_string = "hello";
        the_timeout = setTimeout("alert('" + the_string + "');",60000);
    }

    這段代碼將變量the_string從setTimeout的引號中拉出來,由于該變量變量目前不在setTimeout的引號內(nèi),JavaScript就可以從內(nèi)存中找到該變量的值。

    定時器在動態(tài)HTML中用途非常廣泛,所以值得你仔細(xì)研究它。

相關(guān)文章

最新評論