我正在克隆包含两个文本输入和一个选择选项的行。我正在使用Uniform插件来设置选择的样式。但是,克隆行后,应用统一样式但统一/选择本身不起作用。焦点仍然在原始选择上,克隆选择的值不会改变。
您可以在这个小提琴(与这个线程相关联)中看到克隆选择的确切问题:http: //jsfiddle.net/broncha/WsFyV/34/。它们被克隆后,值永远不会改变。该线程中提到的修复不起作用,如该小提琴中所示。
我用来克隆行的脚本是这样的,从以前的问题中调整:
$('.add-row').on('click', function(event) {
function incrementProp(index, prop) {
return prop.replace(/(\d+)/, function(fullMatch, n) {
return Number(n) + 1;
});
}
var cloneVar = $(this).parent().parent('.sortable');
var cloneRow = $(cloneVar).find('.sort-group .row:last');
var cloneIns;
if (cloneVar.hasClass('before')) {
cloneIns = $(cloneVar).find('.sort-group .row:first');
insert = 'insertBefore';
} else {
cloneIns = $(cloneVar).find('.sort-group .row:last');
insert = 'insertAfter';
}
cloneRow.clone(true)[insert](cloneIns)
.addClass('add').removeClass('first')
.find('input[type=text], textarea, select').val('').attr('name', incrementProp).end()
.find('input, textarea, select, .selector').attr('id', incrementProp).end()
.find('option:selected').removeAttr('selected').end()
.find('.remove').removeClass('visible');
return false;
});
在那里的脚本中,ID 和名称都按照.selector
类和选择本身的预期递增。所以选择 id's/name 看起来像clone_test[0][thomas_the_train]
,clone_test[1][thomas_the_train]
等等。
我已经尝试了这些不同的方法来将制服重新应用于克隆的选择,但这些方法都不起作用:
添加到 cloneRow 链:
.find('select').uniform().end()
在 cloneRow 链之后:
$.uniform.update('select');
或者
$('.select-class').on('change', function() {
$.uniform.update('select');
});
任何人都知道如何统一处理克隆的元素?任何帮助将不胜感激!