setTimeout没有触发jQuery

时间:2015-12-26 17:50:00

标签: javascript jquery settimeout

我正在尝试使用 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);
    });
});

2 个答案:

答案 0 :(得分:2)

setTimeout期望第一个参数是函数表达式,在提供的示例中,正在传递"dropHide"数据类型的string

试试这个:

setTimeout(dropHide, 400);

答案 1 :(得分:0)

像这样使用......

setTimeout("dropHide();", 400);