我正在尝试在 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);
});
});
最佳答案
setTimeout
期望第一个参数是函数表达式,在提供的示例中,正在传递 "dropHide"
,其数据类型为 string
。
试试这个:
setTimeout(dropHide, 400);
关于javascript - setTimeout 不触发 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34473720/