为什么jQuery appendTo会删除现有的列表项
Why jQuery appendTo removes the existing list item?
我正在处理一个项目,在该项目中,我需要在dblclick上或按add按钮将列表项从list1添加到list2。到目前为止,我已经完成了这项工作。
$().ready(function() {
var classHighlight = 'highlight';
var $thumbs = $('ul li').click(function(e) {
e.preventDefault();
$thumbs.removeClass(classHighlight);
$(this).addClass(classHighlight);
});
$('#select1').on ("dblclick","li", function(){
return $(this).appendTo('#select2').removeClass('highlight');
});
$('#select2').on ("dblclick","li", function(){
return $(this).remove();
});
$('#add').click(function() {
$('#select1 .highlight').appendTo('#select2').removeClass('highlight');
});
$('#remove').click(function() {
$('#select2 .highlight').remove();
});
});
但是,如果你看到点击列表1项目也会将点击的项目从列表1中删除,我不想这样做。我只需要将它从列表1复制到列表2。有人能帮我吗?谢谢
当您将现有元素附加到新的父元素时,您会移动它;它不会被复制。您应该先克隆元素,然后附加克隆的元素:
$('#select1').on ("dblclick","li", function(){
return $(this).clone().appendTo('#select2').removeClass('highlight');
});
和
$('#add').click(function() {
$('#select1 .highlight').clone().appendTo('#select2').removeClass('highlight');
});
工作演示
您使用clone()函数来帮助编写代码
$('#select1').on ("dblclick","li", function(){
return $(this).clone().appendTo('#select2').removeClass('highlight');
});
此处显示完整代码http://jsfiddle.net/s41txkng/4/
https://api.jquery.com/clone/
相关文章:
- 从多选列表中删除
- 如何在NativeScript中从列表中删除项目时设置动画
- 正在从列表中删除对象
- orderBy$filter在项目删除(拼接)后阻止ng重复列表更新
- 为什么jQuery appendTo会删除现有的列表项
- 如何删除下拉列表中的部分文本
- 如何删除元素列表中的类并添加到另一个元素 Jquery.
- 编写删除数组并添加到列表的函数
- 删除或隐藏下拉列表中的一些值,该列表由使用JavaScript的存储过程填充
- 使用jquery如何自动删除下拉列表中的第一个空白选项(如果它依赖于另一个选项)
- 如何删除列表中的对象?Javascript nodejs和下划线
- 从angularjs中的下拉列表中删除未定义的值
- jQueryUI可排序-从可排序列表中删除li
- 为什么更改对象列表中的类名会将iten从列表中删除
- 删除基于先前下拉列表选择的“选择下拉列表”选项
- 使用indexOf从列表中删除对象
- 下拉列表删除类不起作用
- 我的播放器播放列表删除功能不起作用
- Telerik 剑道下拉列表删除项目
- 剑道ui下拉列表删除特定项目