Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery超时函数工作不正常_Javascript_Jquery - Fatal编程技术网

Javascript jquery超时函数工作不正常

Javascript jquery超时函数工作不正常,javascript,jquery,Javascript,Jquery,我正在使用setTimeout函数设置display:block;并在鼠标上方附加到li。我只想把积木移走,让它没有 我的功能运行良好,但问题是如果鼠标穿过li,它会使块变得可见。我怎样才能避免这种情况 我的代码是: var thisLi; var storedTimeoutID; $("ul.redwood-user li,ul.user-list li").live("mouseover", function(){ thisLi = $(this); var needSh

我正在使用setTimeout函数设置display:block;并在鼠标上方附加到li。我只想把积木移走,让它没有

我的功能运行良好,但问题是如果鼠标穿过li,它会使块变得可见。我怎样才能避免这种情况

我的代码是:

var thisLi;
var storedTimeoutID;

$("ul.redwood-user li,ul.user-list li").live("mouseover", function(){
    thisLi = $(this);

    var needShow = thisLi.children('a.copier-link');

    if($(needShow).is(':hidden')){
        storedTimeoutID = setTimeout(function(){
            $(thisLi).children('a.copier-link').appendTo(thisLi).show();
        },3000);
    }
    else {
        storedTimeoutID = setTimeout(function(){
            $(thisLi).siblings().children('a.copier-link').appendTo(thisLi).show();
        },3000);
    }   
});

$("ul.redwood-user li,ul.user-list li").live("mouseleave", function(){      
    clearTimeout(storedTimeoutID);

    //$('ul.redwood-user li').children('a.copier-link').hide();
    $('ul.user-list li').children('a.copier-link').hide();
});

如果使用storedTimeoutID变量解决问题,代码可能会开始工作

尝试将其存储在$this.data'storedtime'中


如果问题仍然存在,那就是你的逻辑。试着阅读一下,你就会明白如何解决这些问题。

我不太确定你想说什么,你给出的代码是有效的,所以我猜它并没有完全按照你希望它做的去做。你能再详细一点吗?@3gwebtrain:我编辑了你的答案,试图提高英语水平,让它更具可读性。我只是很难理解这个句子的结尾,你能试着重新表达一下,让我们明白你的意思吗?