jQuery DnD。如何传递与被拖动元素关联的数据?
jQuery DnD. How to pass data associated with an element being dragged?
有一个列表/一个table项(我相信现在不重要了)。使用 jQuery 使它们可拖动。我需要设置一些与被拖动的项目元素关联的数据,并能够从可放置元素的 "drop" 处理程序中的事件中提取它。
我试图将 dataTransfer
属性 与它的 setData()
函数一起使用,但 属性 无法在两侧使用。
这是一个简单的例子:http://jsfiddle.net/x52ue9ae/1/
我认为您不能使用 dataTransfer 是 html5 拖放功能,jQuery DnD 不使用它。
您可以使用 data api 将数据存储在被拖动的元素中,并在放置处理程序中使用它来访问它,例如
$(function () {
$(".draggable").draggable({
start: function (e, ui) {
$(this).data('x', 3)
}
});
$(".droppable").droppable({
drop: function (e, ui) {
console.log('x', ui.draggable.data('x'))
}
})
});
演示:Fiddle
问题是这不是 HTML5 拖放,jQueryUI 使用 mousedown/mousemove/mouseup 事件实现纯 javascript 拖放.根本没有涉及 dataTransfer
机制。
相反,您应该使用 jQuery 将数据 属性 设置到拖动元素:
$(function(){
$(".draggable").draggable({
start: function(e) {
$(this).data('id', 3);
}
});
$(".droppable").droppable({
drop: function(e, ui) {
var id = ui.draggable.data('id');
console.log(id);
}
})
});
有一个列表/一个table项(我相信现在不重要了)。使用 jQuery 使它们可拖动。我需要设置一些与被拖动的项目元素关联的数据,并能够从可放置元素的 "drop" 处理程序中的事件中提取它。
我试图将 dataTransfer
属性 与它的 setData()
函数一起使用,但 属性 无法在两侧使用。
这是一个简单的例子:http://jsfiddle.net/x52ue9ae/1/
我认为您不能使用 dataTransfer 是 html5 拖放功能,jQuery DnD 不使用它。
您可以使用 data api 将数据存储在被拖动的元素中,并在放置处理程序中使用它来访问它,例如
$(function () {
$(".draggable").draggable({
start: function (e, ui) {
$(this).data('x', 3)
}
});
$(".droppable").droppable({
drop: function (e, ui) {
console.log('x', ui.draggable.data('x'))
}
})
});
演示:Fiddle
问题是这不是 HTML5 拖放,jQueryUI 使用 mousedown/mousemove/mouseup 事件实现纯 javascript 拖放.根本没有涉及 dataTransfer
机制。
相反,您应该使用 jQuery 将数据 属性 设置到拖动元素:
$(function(){
$(".draggable").draggable({
start: function(e) {
$(this).data('id', 3);
}
});
$(".droppable").droppable({
drop: function(e, ui) {
var id = ui.draggable.data('id');
console.log(id);
}
})
});