快速纲要 - 当用户点击图像元素时,我正在为图像元素添加一类“已检查”。 点击我的“下一步”按钮会隐藏“选择照片”div并显示确认div,注入所选照片,如下所示:
$('.next').click(function () {
$('.user-photos').attr('id', 'step-two');
$('.choose-photos').hide();
var selected = $('.checked').get();
$('.confirm-batch').show().html(selected);
}
});
.get()方法运行得很好;但是,如果您单击以返回步骤1并选择新照片,则您选择的任何照片都将从DOM中删除。
$('.choose').click(function (){
$('.user-photos').attr('id', 'step-one');
$('.confirm-batch').hide().html('');
$('.choose-photos').show();
}
});
有没有办法在没有重新加载页面的情况下将这些'已检查'项目放回'choose'div中?基本上只是重置过程。
答案 0 :(得分:1)
jQuery使用愚蠢的行为重载它的一些方法。
一个例子是它允许这个......
var selected = $('.checked').get();
$('.confirm-batch').show().html(selected);
看起来你正在插入一个从selected
元素渲染的HTML字符串,但你不是,它正在重新发布它们,就像你通常使用DOM节点一样。
作为一种解决方案,您可以克隆它们,或者更好,只需将它们放回找到它们的位置,而不是使用.html('')