jQuery延迟对非效果的影响?

jQuery延迟对非效果的影响?,jquery,css,Jquery,Css,坚持我的观点,我正在处理预先存在的代码,并试图不必彻底修改代码 我正在处理一个滚动弹出菜单,需要500毫秒的延迟弹出。在疯狂的CSS黑客中完成: #nav ul li ul { left: -9999999px; } #nav ul :hover ul { left: auto; } <div id="nav"> <ul> <li>Link here</li> <ul>Some popup c

坚持我的观点,我正在处理预先存在的代码,并试图不必彻底修改代码

我正在处理一个滚动弹出菜单,需要500毫秒的延迟弹出。在疯狂的CSS黑客中完成:

#nav ul li ul {
  left: -9999999px;
}

#nav ul :hover ul {
  left: auto;
}   

<div id="nav">
   <ul>
     <li>Link here</li>
     <ul>Some popup content</ul>
   </ul>
</div>
它基本上模拟了原始代码,除了现在在JS控制下

然后我逻辑上,为了增加延迟,开始在setTimeout上乱搞

$("#nav ul li").live("mouseover", function () {setTimeout(function() {$(this).children("ul").css("left", "auto");} return false}, 500))
此外,还有许多其他组合。通过setTimeout发送$(这个)似乎是一件痛苦的事。我试着研究.delay(),但它似乎只适用于效果队列,我不确定如何将效果队列集成到这个队列中,以使一切看起来都很好。因此,如果您有任何帮助,我们将不胜感激。

为什么不使用?

请参阅此JSFIDLE

我不得不使用display:none代替jsfiddle的left方法,因为它不会应用left

此外,您的内部ul不在css中指定的li内

下面是如何将鼠标悬停中引用的内容传递给setTimeout

$("#nav ul li").live("mouseover", function () {
    var that= $(this);
    setTimeout(function() {that.children("ul").show();}, 5000);
    return false;
});

您没有为setTimeout()设置超时时间。setTimeout有两个参数,一个是函数或语句,一个是毫秒级的时间,我有,只是在帖子里忘了,will editYou会注意到你的代码仍然没有正确设置。你的花括号不匹配。看看我在下面发布的代码,这是可行的,但我必须在Chrome的JS控制台中进行测试,所以插件很难通过测试。不过,我将进一步研究这一点,它看起来肯定会对未来有所帮助
$("#nav ul li").live("mouseover", function () {
    var that= $(this);
    setTimeout(function() {that.children("ul").show();}, 5000);
    return false;
});