Между каждым добавленным текстом я хочу добавить разделитель (вертикальную черту). Моя проблема в том, что когда я удаляю первый элемент, следующий элемент, который становится первым, имеет нежелательную трубку.
Так как я могу добавить разделитель, только если их больше, чем один элемент, и только если это не первый элемент?
Чтобы воспроизвести сценарий: добавьте a, b, c, а затем удалите a. Вы увидите, что труба перед буквой «Б» все еще там. Лучше ли представить себе канал только в том случае, если после него идет элемент?
Одна из основных проблем здесь — это пустая() внутри функции удаления. Он не удаляет span.output из DOM, поэтому я не могу использовать first() или сделать что-то в CSS, например:
Код: Выделить всё
.output:not(:first-of-type):before {
content:'|';
padding:0 5px;
}
Будем благодарны за любую помощь.
Код: Выделить всё
$(function() {
$(".container").on('input', 'input[type=text]', function(event) {
var i = $(this).closest(".flex-row").index();
var v = (i == 0) ? $(this).val() : "|" + $(this).val();
$("#custom_wrapper .output").eq(i).html(v);
});
$('.add').click(function() {
var count = $("input").length;
count++;
var row = $("", {
class: "flex-row"
}).insertBefore(this);
$("").appendTo(row);
$("", {
type: "text",
class: "input",
id: "custom-text-" + count,
placeholder: "custom text " + count,
tabindex: count
}).appendTo($("label", row));
$("", {
class: "remove"
}).html("-").appendTo(row);
$("", {
class: "output",
dataid: "custom-text-" + count
}).insertAfter($("#custom_wrapper .output:last"));
});
$('body').on('click', '.remove', function() {
$(this).parent('.flex-row').remove();
var j = $(this).parent().find('.input').attr("id");
$('#custom_wrapper .output[dataid="' + j + '"').empty();
})
})Код: Выделить всё
-
-
+
{{customText[]}}
Подробнее здесь: https://stackoverflow.com/questions/790 ... ne-element
Мобильная версия