У меня есть этот javascript, который используется для добавления элементов в один из пяти столбцов. И проблема в том, что когда я нажимаю кнопку «Добавить», она добавляет один новый элемент в текущий столбец (цель), , а также каждый элемент уже есть.jQuery append добавляет несколько элементов
Сначала код.
//adds the html code underneath the column. Get's called on document ready.
function populateTable(){
for (var i = 0; i < 5; i++)
$("#maintable .control .c"+i)
.append('<a href="#" class="add" onclick="addItem('+i+')">Add</a>');
}
//...
//and the function called onclick
function addItem(c,r,doRet,target){
if(target == undefined)
target = $("#maintable .schedtab .c"+c).get();
if(r == undefined){
r = $(target).find(".item").length + 1;
}
var $item = $('<div class="item cell' + cellAddress(c,r) + '"></div>');
$item.append('<input type="text" class="packers"></input>');
$item.append('<input type="text" class="cartons" ></input>');
$item.append('<input type="text" class="count"></input>');
$item.focusin(showCartonsSelect);
$item.mouseenter(showCP);
$item.mouseleave(hideCP);
if(doRet) return $item;
var $targ = $(target);
$targ.append($item);
}
А вот HTML:
<table class="schedule">
<tr class="schedtab">
<td class="col c1"></td>
<td class="col c2"></td>
<td class="col c3"></td>
<td class="col c4"></td>
<td class="col c5"></td>
</tr>
<tr class="control">
<td class="c1"></td>
<td class="c2"></td>
<td class="c3"></td>
<td class="c4"></td>
<td class="c5"></td>
</tr>
</table>
Edit: Ok, вот обновление. Когда я нажимаю кнопку «Добавить», которая запускает addItem (1), она генерирует новый «элемент», а затем добавляет его к цели и каждому элементу, который уже существует. Каждый элемент является div с классом «.item». Он должен только добавить новый объект к цели, а не к каждому элементу, который уже существует.
это нормально, что на кнопку вы только разобрать одну переменную? addItem ('+ i +') – multimediaxp
Да, это должно быть обработано в коде. Не реализовано вставка новой ячейки в середине указанного столбца. Требуется только 'c'. –
Я вижу, что вы используете индекс (i) для вашего селектора jquery и для разбора переменной, является ли funtion addItem (c, r, doRet, target) внутри цикла? – multimediaxp