簡體   English   中英

javascript聲明函數超時

[英]javascript declare function with timeout

我有喜歡的javascript,我想為此函數參數設置時間延遲。這是我的簡單函數

function mopen(id)
    {   

        mcancelclosetime();

        if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
        ddmenuitem = document.getElementById(id);
        ddmenuitem.style.visibility = 'visible';

    }

在這里我想用id設置超時延遲

id應該像這樣延遲打開

function settimeout(mopen(id),1000)
{
}

但是我的這個嘗試不起作用,請幫我如何做

更新資料

這是我的循環功能

 function hideshow(span) {
        hideDiv();
        var div = document.getElementById("DIV_" + span.id);
        if (div.style.display == "none")
        setTimeout(div.style.display = "block",2000);
        else
            div.style.display = "none"; 
    }

你能現在告訴我如何設置div成為一個塊的超時時間嗎?我已經設置了它但是不起作用

在傳遞給setTimeout()的匿名函數中調用mopen() setTimeout()

var t = setTimeout(function() {
  mopen(id)
}, 1000);

那行不通,您可以簡單地做到這一點。 在您的情況下,您定義了一個稱為setTimeout的函數(不是必需的),該方法已在瀏覽器的Javascript標准庫中提供。

setTimeout( function(){mopen(id)}, 1000);

通常你可以做

setTimeout( yourFunction, 1000);

可以完美運行,但是當您必須在setTimeout中將參數傳遞給函數時,可以使用第一個版本,例如在匿名“ function(){}”調用中調用它。

答案已經給出了(我想不是您所期望的那樣)。 重寫為

 function hideshow(span) {
    hideDiv();
    var div = document.getElementById("DIV_" + span.id);
    if (div.style.display == "none")
        setTimeout(function() { div.style.display = "block" }, 2000);
    else
        div.style.display = "none"; 
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM