会有更好,更干净的方式来编写这个条件脚本吗?它基本上是做同样的事情,除非cloneVar
有“之前”类,它会更改它抓取的行(第一个或最后一个)并将.insertAfter
更改为.insertBefore
。有条件的jQuery格式
var cloneVar = $(this).parent().parent('.sortable');
if ($(cloneVar).hasClass('before')) {
var cloneRow = $(cloneVar).find('.sort-group .row:first');
$(cloneRow).clone(true).insertBefore(cloneRow)
.addClass('add').removeClass('first')
.find('input[type=text], textarea').val('')
.attr('name', function(index, name) {
return name.replace(/(\d+)/, function(fullMatch, n) {
return Number(n) + 1;
});
}).parent().find('input, textarea').attr('id', function(index, id) {
return id.replace(/(\d+)/, function(fullMatch, n) {
return Number(n) + 1;
});
}).parent().find('.delete').removeClass('visible');
return false;
} else {
var cloneRow = $(cloneVar).find('.sort-group .row:last');
$(cloneRow).clone(true).insertAfter(cloneRow)
.addClass('add').removeClass('first')
.find('input[type=text], textarea').val('')
.attr('name', function(index, name) {
return name.replace(/(\d+)/, function(fullMatch, n) {
return Number(n) + 1;
});
}).parent().find('input, textarea').attr('id', function(index, id) {
return id.replace(/(\d+)/, function(fullMatch, n) {
return Number(n) + 1;
});
}).parent().find('.delete').removeClass('visible');
return false;
}
你并不需要的一切链成一个巨大的线。分开来。 – Blender