是否有更好、更简洁的方法来编写这个条件脚本?它基本上在做同样的事情,除非cloneVar
有“之前”类,它会更改它正在抓取的行(第一行或最后一行)并更改.insertAfter
为.insertBefore
.
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;
}