使用分离后无法添加回html元素

时间:2015-04-02 21:35:39

标签: javascript jquery html

我正在尝试使用remove()函数删除html后添加元素。出于某种原因,当我调用add()函数时, remove 变量会丢失html DOM。如果我将remove.insertAfter('#element');放在ajaxSuccess()之外,它就可以了。我正在使用ajaxSuccess(),因为我希望ajax先完成,然后再向用户显示该元素。

    var remove;
    function remove() {

//there is a ajax call here

       $(document).ajaxSuccess(function() {
          remove = $('#myDiv').detach(); //or should I use remove()?
       });
    }

    function add() {

//there is an ajax call here

       $(document).ajaxSuccess(function() {
          remove.insertAfter('#main');
       });
    }

    <div id="main">
       <div id="myDiv">

       </div>
    </div>

1 个答案:

答案 0 :(得分:0)

根据

的api文档

detach()

它声明使用detach()保留所有与删除元素相关联的jQuery数据 在你的情况下,可能是在ajax调用之后DOM没有准备好,当你添加元素并查看它是否有效时,尝试将动作延迟几秒。我的意思是将元素添加回DOM中。只是一个建议