就我而言,悬停时 <div>
因此在 <div>
中添加一个元素
但在某些 div 中,我想隐藏悬停元素后的前置元素。
这是我的代码及其工作!
HTML:
<div class="one">
<span class="content"></span>
</div>
<div class="two">
<span class="content"></span>
</div>
jQuery:
$("div.one > .content").on("hover" , function(){
var this_ = $(this);
this_.prev(".top").remove();
});
$("div.two > .content").on("hover" ,function(){
var this_ = $(this);
setTimeout(function(){this_.prev(".top").remove();})
});
.one
和.two
两者都是相同的功能,但我想知道为什么第二个功能在我使用 setTimeout()
时会产生影响并且计时为 0 毫秒,为什么 0 毫秒会影响我的函数?
最佳答案
这不是 0 毫秒,而是 4 ms delay .
答案很简单:鼠标悬停后会触发 mouseenter,因此您试图删除尚不存在的元素。通过 4 毫秒的暂停和在不到 4 毫秒内完成的悬停回调,它可以按预期工作。
关于jquery - 为什么 setTimeout() 为 0 毫秒。影响我的职能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14623743/