我有一个可编辑的表格,您可以在其中使用按钮动态添加行,但即使它们具有 droppable-Selektor,我也无法将可拖动的内容拖放到新行中。我试图用委托和droppable()
新行修复它,但失败了。任何提示或想法?
Here is my Code:
http://jsfiddle.net/gM3bF/7/
我有一个可编辑的表格,您可以在其中使用按钮动态添加行,但即使它们具有 droppable-Selektor,我也无法将可拖动的内容拖放到新行中。我试图用委托和droppable()
新行修复它,但失败了。任何提示或想法?
Here is my Code:
http://jsfiddle.net/gM3bF/7/
您必须添加.droppable(options)
到新行。
为了使它工作,我为你添加了一个新行:
var newtr = $('<tr />', { class: 'sortable-row ui-droppable newRow' });
现在将 droppable 添加到这个 newRow (最后删除这个新的无用类):
$(".newRow") .droppable( {
revert: true,
drop: function (event, ui) {
var id = ui.draggable.prop('id');
if (id == "blurk") { var content = blurkContent(); };
var title = $(event.target).closest('tr').children()[2];
$(title).html(unescape(content[0]));
var description = $(event.target).closest('tr').children()[3];
$(description).html(unescape(content[1]));
var link = $(event.target).closest('tr').children()[4];
$(link).html(content[2]);
var thumbnail = $(event.target).closest('tr').children()[5];
$(thumbnail).html(content[3]);
}
} )
$(".newRow").removeClass("newRow");
当然,您可以简化您添加的参数,为此创建一个新的 var。
希望能帮助到你
采用:
$(document).on(eventName, selector, function);
用法:
$(document).on('click', 'input.addButton', function(){ alert('clicked'); });
$(document).on('dblclick', '#editableTable td', function(){ alert('td clicked'); });
$(document).on('click', '#editableTable input.deleteButton', function(){ alert('delete clicked'); });
这些您可以在文档就绪事件处理程序中声明一次。
然而,
如果您正在动态添加可拖动元素,请确保在将它们添加到 DOM.draggable({})
后调用。
希望有帮助。