重复几次链接添加和删除后,添加新的输入.为什么
repeat several times link add and remove after add new input. why?
为什么每次add
和remove
之后,new input
链接remove
和add
重复几次?
如:removeremoveremoveremove
或addaddaddaddaddaddadd
和...
示例(添加输入并查看):http://jsfiddle.net/zgWr3/6/
$(function () {
$('a.add_input').live('click', function (event) {
event.preventDefault();
var $class = '.' + $(this).closest('div.find_input').find('div').attr('class');
var newDiv = $(this).closest($class).clone();
$(this).closest($class).find('.add_input').remove()
//$(this).find('.adda').remove()
newDiv.find('.adda .mediumCell').append('<a href="" class="remove_input">remove</a>')
newDiv.find('input').each(function () {
$(this).prop('checked', false).val('');
});
$($class + ':last').after(newDiv);
//newDiv.remove('.adda')
//alert(newDiv)
});
$('a.remove_input').live('click', function (event) {
event.preventDefault();
var $class = '.' + $(this).closest('div.find_input').find('div').attr('class');
$(this).closest($class).prev().find('.adda .mediumCell').append('<a href="" class="add_input">add</a>')
$(this).closest($class).remove();
});
});
您正在克隆包含链接的div,然后添加另一个。
编辑:好吧,你克隆div然后添加它,并追加remove_link(和类似的add_link在remove)。第一次没有联系时,它就起作用了。第二次调用clone()时链接存在,因此添加了一个副本。第三次有2个链接,你再添加一个。等等。
最好在函数之外构建整个HTML字段,如:var divHTML = ''
<div class="field">'
<input type="text"/>'
<a class="remove_link">Remove</a>'
</div>';
…然后只需在函数中添加$(divHTML)
,而不是像现在这样复杂的克隆/追加/操作函数。无论如何,可能有一种更简单、更直接的方法。
编辑2:像这样
var divHTML = ''
<div class="mediumCell">'
<input type="text" name="price" placeholder="hello" title="تعرفه"'
class="numeric" style="width: 70px;">'
<a class="remove_input" href="#">remove</a>'
</div>';
$('a.add_input').live('click', function (event) {
event.preventDefault();
$(divHTML).insertBefore($(this));
});
$('a.remove_input').live('click', function (event) {
event.preventDefault();
$(this).closest('.mediumCell').remove();
});
编辑3:好吧,你总是可以使用你原来的add函数,只是在那里扔一个not()过滤器,所以链接只被添加到第一个克隆:
newDiv.find('.adda .mediumCell').not(':has(.remove_input)').append('<a href="" class="remove_input">remove</a>')
每次单击此代码中的"add"链接时,都要添加一个新的"remove"链接:
newDiv.find('.adda .mediumCell').append('<a href="" class="remove_input">remove</a>')
注释它工作得很好,但你没有任何"删除"链接。我建议您在活动事件之外添加"remove"链接,并在需要时在那里操作它。
相关文章:
- 根据Select值添加/删除表行
- 添加/删除类淡入淡出不起作用
- p5.js声音库:如何添加/删除p5.第5页中的短语().零件()
- 在django表单集中添加/删除表单的Javascript
- 添加/删除子元素
- 添加/删除/更改输入文本的部分值
- jQuery - 添加删除类 - 设置输入值
- 向具有唯一Id的表添加/删除行
- DateTimePicker:函数从minDate maxDate添加删除日期
- 由 JavaScript 控制的 CSS3 单向转换在按顺序添加/删除类时不起作用
- 添加/删除类在 Chrome 中对我不起作用
- JQuery 测试元素是可见的还是隐藏的,然后添加删除类
- Jquery切换和添加/删除
- 克隆字段上的“添加-删除”按钮
- (X-Editable)与(Select2标签)不工作,可以't填充当前标签并跟踪添加/删除的标签
- 添加/删除要与Jquery进行比较的产品
- 添加/删除类并使用Cookie记住所选内容
- 如何使用延迟添加/删除类
- 如何根据数组内容添加/删除数组中的元素
- 单击单选按钮,添加/删除表单元素的类