0
скрипки: http://jsfiddle.net/macbeth3n1/5sdzsL3d/3/JQuery заменить ячейки таблицы на сопротивлении/падение
При перемещении ячейки (дела) в сбрасываемый (тд), мне нужно заменить и/или добавлять ячейки в своих новых позициях. Однако при добавлении div не размещается на экране, где я хочу его (то же место, что и предыдущие данные), а на replaceWith он полностью исчезает. Пожалуйста, см. Скрипку для кода. Помогите!!
<table>
<tr>
<td class="drop" id="tdClass1">
<div class="empty"></div>
<input type="hidden" id="input1" />
</td>
<td class="drop" id="tdClass2">
<div class="drag">Class 2</div>
<input type="hidden" id="input2" />
</td>
</tr>
<tr>
<td class="drop" id="tdClass3">
<div class="drag">Class 3</div>
<input type="hidden" id="input3" />
</td>
<td class="drop" id="tdClass4">
<div class="empty"></div>
<input type="hidden" id="input4" />
</td>
</tr>
</table>
$(document).ready(function() {
$('.drag').draggable ({
cursor: "move",
appendTo: "body",
revert: "invalid",
opacity: 0.5
});
$('.drop').droppable({
accept: ".drag",
tolerance: "pointer",
snap: ".drop",
drop: function (event, ui) {
ui.draggable.position({
of: $(this),
my: 'left top',
at: 'left top'
});
ui.draggable.draggable('option', 'revert', 'invalid');
var parentTd=$(ui.draggable).closest('td');
var parentDiv=$(ui.draggable).closest('div');
var thisDiv = $(this).find('div');
var emptyDiv=$('<div class="empty"></div>');
alert ("thisTdId=" + $(this).attr('id') +
", parentTdId=" + parentTd.attr('id'));
thisDiv.replaceWith(ui.draggable);
parentDiv.append(emptyDiv);
}
});
});
К сожалению, функция "append" не работает для меня. Вот почему я попробовал «replaceWith». На append ячейка или данные отправились в другое место на странице (часто за пределами самой таблицы). Я справился с проблемой, просто используя ряд классов, которые я добавляю и удаляю. Вот моя новая скрипка: http://jsfiddle.net/7axgt9uo/1/ –
Хорошо! да, я забыл попросить вас установить ширину и высоту tds :) – Sunand