这可能是一个非常奇怪或简单的错误。但这让我很头疼。下面的代码是针对2个<img>
元素的单击事件处理程序。你点击一个分类为"撤销"的<img>
元素-这应该删除被点击的<img>
和分类为"bin"的元素,同时直接在它旁边。我设法把其中一个或另一个移走,但不能两个都移走。有人能帮忙吗?谢谢你!沃尔特。
JS:
$('ul').on('click','.undo',function(e) {
$(this).remove();
$(this).prev().remove();
HTML: <img src="images/bin.png" align="right" class="bin">
<img src="images/undo.png" align="right" class="undo">
一旦调用$(this).remove();
,元素将从dom中删除,此后$(this).prev()
将找不到任何元素,因为分离的元素之前没有任何兄弟元素
$('ul').on('click', '.undo', function (e) {
$(this).prev().addBack().remove();
或
$('ul').on('click', '.undo', function (e) {
$(this).prev().remove();
$(this).remove();
将删除过程改为如下:
$('ul').on('click','.undo',function(e) {
$(this).prev().remove();
$(this).remove();
});
你在这里做的是试图删除
previous
元素一旦current
元素被删除,jquery
将不会被删除能够找到this
元素一旦被移除,就可以移除它的previous
元素。所以只要先删除它的previous
元素,然后删除current
元素
我摆弄了一下剩下的代码,发现问题就在那里。问题出现在冒泡效果,并且项目是在通过DOM加载页面后添加的。
谢谢你的调查-我需要去分析我的代码的其他位导致这个不工作