我发现使用 jquery .after 将 div 插入 li 时出现问题。从本质上讲,该操作是删除整个 li ......我不知道为什么。我还看到了在不同的表格元素上使用 .after 的这种问题,这对我来说更有意义,因为我可以看到这会破坏表格。
看看这个 jsfiddle:http: //jsfiddle.net/XrUtq/
我必须这样做的原因是因为我必须想出一种通用的方法,以便能够将 div 作为 DOM 中的 CLOSE 放置到我无法控制的另一个元素(可能是任何一种元素)。然后 div 将相对/绝对定位在页面上以越过它所追求的元素。我这样做是因为我们需要一个解决方案,而不是将 div 附加到正文,因为如果视图发生更改,那么附加的元素将保留在页面上,而不是与它应该显示的内容一起消失。
我希望我已经把问题说得够清楚了。我试过这样的方法:
if (nodeName === 'td' || nodeName === 'tr' || nodeName === 'th' || nodeName === 'tbody'){
popover.appendTo(editable.closest(':visible:not(tr):not(td):not(table):not(tbody)'));
}
else if(editable.is(':visible')){
popover.after(editable);
}
else{
$('body').append(popover);
}
但这并不能解释当前 li 的问题。
感谢您的帮助/建议!