我有类似的javascript,我想设置这个函数参数的时间延迟。这是我的简单功能
function mopen(id)
{
mcancelclosetime();
if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
ddmenuitem = document.getElementById(id);
ddmenuitem.style.visibility = 'visible';
}
这里我想用id.I表示
设置超时延迟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设置为div成为一个块。我设置了它但它不起作用
答案 0 :(得分:1)
在传递给mopen()
的匿名函数中调用setTimeout()
。
var t = setTimeout(function() {
mopen(id)
}, 1000);
答案 1 :(得分:0)
那不行,你可以简单地做到这一点。在您的情况下,您定义了一个名为setTimeout的函数,这是不必要的,此方法已在浏览器的Javascript标准库中提供。
setTimeout( function(){mopen(id)}, 1000);
通常你可以做到
setTimeout( yourFunction, 1000);
完美无缺,但是当您必须将参数传递给setTimeout中的函数时,您可以使用第一个版本,就像在匿名“function(){}”调用中调用它一样。
答案 2 :(得分:0)
我已经给出了答案(不是你想象的那样)。将您的功能重写为
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";
}