亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

“setTimeout”javascript 函數不起作用的代碼有什么問題?

“setTimeout”javascript 函數不起作用的代碼有什么問題?

滄海一幻覺 2023-03-24 14:21:57
對于我的網站,我想使用顯示一些內容mouseover,并且即使在采取操作時也希望顯示內容幾秒鐘,mouseout因為內容包含一些有用的鏈接。為此,我使用setTimeoutjavascript 函數將函數延遲mouseout10 秒。但不幸的是它不起作用。<body>    <img src="images/1.jpg" alt="some_text" id="test1" style="height: 450px; width: 300px;">    <img src="images/1.jpg" id="test2" alt="some_text" style="height: 450px; width: 300px;">    <script>        document.getElementById("test1").addEventListener("mouseover", mouseOver);        document.getElementById("test1").addEventListener("mouseout", mouseOut);        function mouseOver() {            document.getElementById("test2").style.opacity = "0";            document.getElementById("test2").style.visibility = "hidden";        }        function mouseOut() {            document.getElementById("test2").style.opacity = "1";            document.getElementById("test2").style.visibility = "visible";        }        setTimeout(mouseOut, 10000);    </script></body>
查看完整描述

3 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

您應該調用setTimeout內部事件處理程序,如下所示:


document.getElementById("test1").addEventListener("mouseout", mouseOut);

function mouseOut() {

    setTimeout(mouseOut2, 10000);

}

function mouseOut2() {

    document.getElementById("test2").style.opacity = "1";

    document.getElementById("test2").style.visibility = "visible";

}


查看完整回答
反對 回復 2023-03-24
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

SetTimeout 應該在 mouseOut 里面


        document.getElementById("test1").addEventListener("mouseover", mouseOver);

        document.getElementById("test1").addEventListener("mouseout", mouseOut);


        function mouseOver() {

            document.getElementById("test2").style.opacity = "0";

            document.getElementById("test2").style.visibility = "hidden";

        }


        function mouseOut() {

                setTimeout(()=>{

                            document.getElementById("test2").style.opacity = "1";

                            document.getElementById("test2").style.visibility = "visible";

            }, 6000);


        }

<body>

    <img src="images/1.jpg" alt="some_text" id="test1" style="height: 450px; width: 300px;">

    <img src="images/1.jpg" id="test2" alt="some_text" style="height: 450px; width: 300px;">


</body>


查看完整回答
反對 回復 2023-03-24
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

由于您綁定mouseOut為相應事件的事件處理程序,它仍將被執行。您setTimeout添加的只會再調用mouseOut一次,與鼠標事件無關。


如果您想延遲處理鼠標移開事件時發生的事情,請執行以下操作:


        function mouseOut() {

            setTimeout(function () {

                document.getElementById("test2").style.opacity = "1";

                document.getElementById("test2").style.visibility = "visible";

            }, 10000);

        }

但是請注意,這可能不是那么用戶友好。用戶可能希望該行為與他們的鼠標移動有關,但現在連接丟失了——肯定有 10 秒的超時。


查看完整回答
反對 回復 2023-03-24
  • 3 回答
  • 0 關注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號