0

我正在努力完成的两件事。1)使用克隆方法,我希望用户能够添加多个文本框项目,并在文本框旁边添加一个删除链接,而不是像现在这样在它下方。2)。单击“删除”链接时,我想删除父列表项并删除链接。我四处寻找答案,但没有想出答案。此外,如果比克隆更好的方法可行,我愿意提供建议和解释。

我的jsfiddle代码

$('#click').click(function(){
var clone = $('li:last').clone()
if(!clone.find('.del')[0]) clone.append('<a href="#" class="del">Delete</a>')

clone.appendTo('ul');
    });

$('ul').on('click', 'li .del', function(){
     $(this).closest('li').remove();
        });
4

2 回答 2

0

查看您更新的小提琴http://jsfiddle.net/juanpastas/56wuv/17/

基本上,您需要处理尚未创建的元素中的事件:

$('ul').on('click', 'li .del', function(){

为了使用这个选择器

$(this).closest('li')

您需要实际放置$(this),即.del元素内的li元素

var clone = $('li:last').clone().append('<a href="#" class="del">Delete</a>')
clone.appendTo('ul');

更新

if(!clone.find('.del')[0]) clone.append('<a href="#" class="del">Delete</a>')

clone.find('.del') // returns elements with del class inside the cloned element
[0]                // gets the first element in these elements, undefined if no del elements found
!                  // negates undefined, i.e. true,

// so code enter if when there is no del element

clone.append('<a...'  // append delete if there is no delete link
于 2013-05-06T02:19:42.690 回答
0

2件事:

1)您仅在加载时绑定您的偶数,因此当您创建链接时,它没有任何操作,请使用jQuery on()

$(document).on('click', '.del',function(){...}

2)最近搜索父母,你想要上一个li,所以使用jQuery prev()

这里有一个小提琴:http: //jsfiddle.net/56wuv/15/

于 2013-05-06T02:20:53.407 回答