在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ clearTimeout不起作用

clearTimeout不起作用

使用定時(shí)器時(shí),有兩個(gè)按鈕,一個(gè)是設(shè)置定時(shí)器,一個(gè)是清除定時(shí)器,但是clearTimeout并沒(méi)有起作用,控制臺(tái)上還是輸出,請(qǐng)問(wèn)是為什么,哪里出錯(cuò)了?
代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script>
       var settime=null;
        function insert(){
            settime=window.setTimeout(showalert,3000);
        }
        function showalert(){
            console.log("這是顯示語(yǔ)句");
        }
        function clear(){
            window.clearTimeout(settime);
        }
    </script>
</head>
<body>
    <div id="a">
      <h3>setTimeout</h3>
      <button onclick="insert()">顯示語(yǔ)句</button>
      <button onclick="clear()">取消顯示</button>
    </div>
</body>
</html>
回答
編輯回答
怪痞

你的取消按鈕不會(huì)執(zhí)行的 函數(shù)名字是關(guān)鍵字

2017年5月3日 01:49
編輯回答
絯孑氣

啊啊,老兄,這種問(wèn)題之前我也遇到過(guò),很無(wú)措。
原因: clear 是個(gè)關(guān)鍵字,你試試改個(gè)名字,比如 clear1 就行了。

---補(bǔ)充
抱歉,回答的不太正確。
你可以這樣試試(如下代碼),它會(huì)打印出:? clear() { [native code] }。
說(shuō)明在事件處理的內(nèi)部的作用域中有一個(gè) clear 方法,它排的比較靠前,表現(xiàn)的就像一直會(huì)覆蓋你定義的 clear 方法。

<button onclick="(function() { console.log(clear) })()">Click</button>
2017年1月2日 06:06
編輯回答
短嘆
    
    可以在啟動(dòng)定時(shí)器的時(shí)候先清理下已有的timeout
    ```
    function insert(){
        if(settime) window.clearTimeout(settime);
        settime=window.setTimeout(showalert,3000);
    }
    
    function clear(){
        if(settime) {
            window.clearTimeout(settime);
            settime = null;
        }        
    }
    
    ```
    另外,clear為關(guān)鍵字,屬于document對(duì)象的api,可以嘗試如下代碼:
    
    ```
    <script>
        document.clear = function(){
            console.log("clear是關(guān)鍵字");
        }
    </script>
    <a href="#" onclick="clear()">click me</a>

    ```
    所以,還需要修改清除定時(shí)器的函數(shù)名。
2017年11月23日 05:08