Syl*_*Syl 8 html5 drag-and-drop
这是我的举动:
dragstart: function(e) {
$(this).css('opacity', '0.5');
e.dataTransfer.effectAllowed = 'move';
e.dataTransfer.setData('application/json', {
id: $(this).attr('id'),
header: $('header', this).text()
});
},
Run Code Online (Sandbox Code Playgroud)
我想传递一些信息,如id和文本.我的下落是:
drop: function(e) {
var data = e.dataTransfer.getData('application/json');
alert(data);
$(this).attr('id', data.id);
$('header', this).text(data.header);
},
Run Code Online (Sandbox Code Playgroud)
但数据未定义,我无法访问我的数据.这是正确的方法吗?
谢谢!
在拖动开始
var testjson = {name:"asd",tall:123};
e.dataTransfer.setData("text/plain",JSON.stringify(testjson));
e.dataTransfer.effectAllowed = "copy";
Run Code Online (Sandbox Code Playgroud)
在下降
var data = e.dataTransfer.getData("text/plain");
console.log(JSON.parse(data));
Run Code Online (Sandbox Code Playgroud)
你会得到的
Object {name: "asd", tall: 123}
Run Code Online (Sandbox Code Playgroud)
在console.log中
luk*_*onn -1
如果您的dragstart函数中包含effectAllowed,例如:
e.dataTransfer.effectAllowed = 'move';
Run Code Online (Sandbox Code Playgroud)
那么我的理解是你需要在 drop 函数中定义一个等效的 dropEffect :
e.dataTransfer.dropEffect = 'move';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10574 次 |
最近记录: |