我有一个jQuery函数,当用户在元素上悬停时会创建一个元素。当鼠标离开元素时,我设置了一个超时来销毁它。虽然创建和正常销毁元素确实可以正常工作,但超时内的remove
无法正常工作并且无声地死亡。我怀疑window.setTimeout
和jQuery.remove
之间的互动存在问题,但无法在网络上找到任何内容。
我的代码:
//Element creation
function createElement(){
$(".my_class").remove()
content = compose_content() //It's an <ul>
$('<div></div>', {
class : "my_class",
html: content
}).insertAfter($("#first_row"))
}
//Element destruction
function setDestroyTimeout(){
if(perform_some_checks()){
window.setTimeout(function(){
console.log("Removing...")
$(".my_class").remove()
}, 1000)
}
}
$(".another_class").hover(createElement(), setDestroyTimeout())
第一个删除(createElement
功能中的一个)工作顺利,而第二个不做任何事情。 Timeout也可以,我使用console.log
指令进行了检查。