我正在尝试使用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>
答案 0 :(得分:0)
根据
的api文档它声明使用detach()保留所有与删除元素相关联的jQuery数据 在你的情况下,可能是在ajax调用之后DOM没有准备好,当你添加元素并查看它是否有效时,尝试将动作延迟几秒。我的意思是将元素添加回DOM中。只是一个建议