我有以下代码。当表为空时,需要追加到ti,但如果有行,则需要对拖放的行执行insertBefore操作。但是drop只在表上检测到,即使我在tr上drop,跟踪也只显示表
$("#mytable TABLE, #mytable TABLE").droppable({
drop: function(event, ui)
{
var target = $(event.target);
var draggable = ui.draggable;
trace(target[0].tagName) ;
}
});发布于 2010-09-07 19:09:00
我相信它是可以整理的,但这里有一些似乎有效的方法:
function dropRow(event, ui) {
var target = $(event.target);
var draggable = ui.draggable;
var tr = $('<tr><td>' + draggable.text() + '</td></tr>');
target.before(tr);
tr.droppable({ drop: dropRow, greedy: true });
}
function dropTable(event, ui) {
var target = $(event.target);
var draggable = ui.draggable;
var tr = $('<tr><td>' + draggable.text() + '</td></tr>');
target.append(tr);
tr.droppable({ drop: dropRow, greedy: true });
}
$("#mytable").droppable({
drop: dropTable
});This question可能是相关的--你的问题的一部分是把'drop‘事件挂接到还不存在的元素上(’This question‘也不处理'drop’)。
发布于 2010-09-08 19:11:08
我的错,问题是TR是被丢弃的那个,所以它们不存在于init中,这是只有table做出反应的原因。因此,我在页面中的所有TR (两个表)上初始化drop,这样当第一个表中的TR在第二个表中被删除时,它们会在另一个TR被删除时做出反应。
但是我需要找到一种最简洁的方法来初始化丢弃的TR。不知道在每个新行上重新启动第二个表中的所有TR是否是一个好方法。
https://stackoverflow.com/questions/3657817
复制相似问题