2012-03-02 89 views
5

這是我的dragstart:拖放HTML 5的jQuery:e.dataTransfer.setData()與JSON

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() 
    }); 
}, 

我想傳遞一些信息,例如ID和文本。我的降幅是:

drop: function(e) { 
    var data = e.dataTransfer.getData('application/json'); 
    alert(data); 
    $(this).attr('id', data.id); 
    $('header', this).text(data.header); 
}, 

但是數據不確定,我無法訪問我的數據。這是正確的方式嗎?

謝謝!

+0

難道與此有關? http://stackoverflow.com/questions/7640234/jquery-ui-draggable-droppable-datatransfer-is-undefined – Shivi 2015-01-30 07:41:00

回答

0

如果包括effectAllowed在你的dragstart功能,如:

e.dataTransfer.effectAllowed = 'move'; 

然後,它是我的理解是,你需要定義在下拉功能等效的dropEffect來:

e.dataTransfer.dropEffect = 'move'; 
9

在拖動開始

var testjson = {name:"asd",tall:123}; 
e.dataTransfer.setData("text/plain",JSON.stringify(testjson)); 
e.dataTransfer.effectAllowed = "copy"; 

落下

var data = e.dataTransfer.getData("text/plain"); 
console.log(JSON.parse(data)); 

和U將得到

Object {name: "asd", tall: 123} 

中的console.log