jQuery.remove()和setTimeout交互

时间:2016-03-17 13:19:49

标签: javascript jquery

我有一个jQuery函数,当用户在元素上悬停时会创建一个元素。当鼠标离开元素时,我设置了一个超时来销毁它。虽然创建和正常销毁元素确实可以正常工作,但超时内的remove无法正常工作并且无声地死亡。我怀疑window.setTimeoutjQuery.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指令进行了检查。

0 个答案:

没有答案