我在JQuery中为标签创建了一个脚本,脚本目标是当你点击空格时,它会自动创建一个新标签。
但问题是,我想创建一个按钮来克隆我的表单,当我点击这个按钮时,它会克隆我的表单,但是当你尝试编辑标签时,标签只适用于最后一个表单从第一个创建的表单,你不能,因为scritpt不能识别。
我创建了一个jsfiddle来解释发生了什么
我正在使用此代码来克隆表单,而我只使用类
$(function(clone){
var template = $('.job .offer:first').clone(true);
var offersCount = 1;
window.addoffer = function(clone){
offersCount++;
var offer = template.clone(true).find(':input').each(function(){
var newId = this.id.substring(0, this.id.length-1) + offersCount;
this.name = this.id = newId; // update id and name (assume the same)
}).end()
.attr('id', 'att' + offersCount)
.prependTo('.job');
}
$('.add').click(addoffer);
});
答案 0 :(得分:0)
live已在jquery 1.8+中弃用并删除,请使用on
委托事件来动态添加元素。
试试这个
$('.job').on('keypress', '.txtlinks', function (e) { //Check if space was clicked, and create a new tag
if (e.which == 32) {
var tl = $('.txtlinks').val();
if (tl) {
$(this).val('').parent().before('<li class="links"><span><input type="hidden" value="' + tl + '" name="links[]" />' + tl + '</span><a style="cursor:pointer;" class="close">[x]</a></li>');
}
}
});
$('.job').on('click', '.close', function () {
$(this).parent().remove();
});
$(function (clone) {
var template = $('.job .offer:first').clone(true);
var offersCount = 1;
window.addoffer = function (clone) {
offersCount++;
var offer = template.clone(true).find(':input').each(function () {
var newId = this.id.substring(0, this.id.length - 1) + offersCount;
this.name = this.id = newId; // update id and name (assume the same)
}).end()
.attr('id', 'att' + offersCount)
.prependTo('.job');
}
$('.add').click(addoffer);
});