我正在尝试使用 document.ready()和 jquery.mouseleave()中的setTimeout调用函数。由于某些原因没有任何反应,它甚至会给我一个错误。 代码(JS):
var stay = false;
function dropHide()
{
alert(stay);
if(stay == false)
{
$("#products-dropdown").slideUp();
}
}
$(document).ready(function()
{
$("#products-item").mouseenter(function()
{
stay = true;
$("#products-dropdown").slideDown();
});
$("#products-dropdown-item-1").mouseenter(function()
{
stay = true;
});
$("#products-dropdown-item-2").mouseenter(function()
{
stay = true;
});
$("#products-dropdown-item-1").mouseleave(function()
{
stay = false;
setTimeout("dropHide", 400);
});
$("#products-dropdown-item-2").mouseleave(function()
{
stay = false;
setTimeout("dropHide", 400);
});
$("#products-item").mouseleave(function()
{
stay = false;
setTimeout("dropHide", 400);
});
});
答案 0 :(得分:2)
setTimeout
期望第一个参数是函数表达式,在提供的示例中,正在传递"dropHide"
数据类型的string
。
试试这个:
setTimeout(dropHide, 400);
答案 1 :(得分:0)
像这样使用......
setTimeout("dropHide();", 400);