0
document.getElementById('canvas_map').addEventListener(
'dragstart', function(event) {
var list_exe_selected=[];
var image_match=[];
//[...] code to find images image_match will be an htmlcollection
list_exe_selected[i]=[];
for (var j=0; j<image_match.length; j++) {
var str=image_match[j].href.baseVal;
list_exe_selected[i].push(str);
};
event.dataTransfer.setData('text', list_exe_selected);
}
document.getElementById('canvas_map').addEventListener(
'dragover', function(event) {
event.preventDefault();
});
document.getElementById('canvas_map').addEventListener(
'drop', function(event) {
var data = event.dataTransfer.getData('text');
var list_exe_selected=data.split(',');
for (var i=1; i<list_exe_selected.length; i++) {
exe_selected=list_exe_selected[i];
//do stuff
};
};
第一件事:在dataTransfer.setData
text
是數據類型...好。還有哪些其他數據類型?我找不到。有數組的東西嗎?如何拖放陣列
第二件事:我list_exe_selected
上dragstart
是這樣的:
[ <1 empty space>, "my_string1", Array[2], <3 empty spaces>, "my_string2"… ]
但我data
上drop
是這樣的:
,my_string,first_element_of_my_array,second_element_of_my_array,,,,my_string2...
我的數組一直在他的元素 '爆炸',所以我的list_exe_selected
沒有像以前一樣的索引,這是問題...
有沒有簡單的方法來解決這個問題?我可以手動重建陣列,但也許可以在不丟失格式的情況下傳輸數據,或者可以傳遞多個數據集...
編輯: 我可能是錯的,但最後它看起來像是你不能直接傳遞數組。
此外,pleeeeaaase不使用Snakecase。 Camelcase是JavaScript標準。見[this](https://www.w3schools.com/js/js_conventions.asp)。 – fstylermiller