仅测试了一个 Mountain Lion (Mac),但在使用 Google Chrome 和 jQuery 的 .remove() 时,该元素会从 dom 中删除,但不会从屏幕中删除。
我的 css 停止处理已删除的标签,但工件仍留在屏幕上。我在搜索中找不到任何关于此的内容。
Chrome 版本 24.0.1312.57 - jQuery v1.7.1
代码,以便您可以重现:
注意:当您在最后一个元素上单击删除时会出现问题。
仅测试了一个 Mountain Lion (Mac),但在使用 Google Chrome 和 jQuery 的 .remove() 时,该元素会从 dom 中删除,但不会从屏幕中删除。
我的 css 停止处理已删除的标签,但工件仍留在屏幕上。我在搜索中找不到任何关于此的内容。
Chrome 版本 24.0.1312.57 - jQuery v1.7.1
代码,以便您可以重现:
注意:当您在最后一个元素上单击删除时会出现问题。
我在您的代码中看到了几个问题:
您应该为所有元素使用唯一 ID(如另一个答案中所述)
ID必须以字母 (az) 开头才能有效
'spans'(内联元素)不应是'divs'(块元素)的父级
jQuery.live() 自 jQuery 1.7 起已弃用,不应再使用,请改用 .on()
使用委托(事件冒泡)而不是在每个元素上分配事件处理程序,这将使您的代码更轻、更快并且(特别是因为您正在从 dom 中删除元素,从而降低了内存泄漏的风险)
<div class='wrapper-div'>
<div id="e6" class='day'>
<div>
<input type="hidden" name="n_6" value="6" /><div>Label</div>
<a href="javascript:void(0);" class="remDay">Remove</a>
</div>
</div>
<div id="e7" class='day'>
<div>
<input type="hidden" name="n_7" value="7" /><div>Label</div>
<a href="javascript:void(0);" class="remDay">Remove</a>
</div>
</div>
</div>
<script>
$('.wrapper-div').on('click', '.remDay', function() {
$(this).closest('div.day').remove();
});
</script>
您必须为 DOM 元素使用唯一的 ID 标签。
如果您想坚持使用“remDay”,或者使用不同的标签,例如 class。
....
<span id="ID6"><div><input type="hidden" name="n_6" value="6" /> <div >Label:</div> TEXT
<a href="javascript:void(0);" class="remDay">Remove</a></div></span>
....
$('.remDay').live('click', function() {
$(this).parents('span').remove(); // Ticket #13359
});
ID 也必须包含一个字母,如http://www.w3schools.com/tags/att_global_id.asp