我的JavaScript在GitHub页面上无法正常工作:GitHub页面上的拖放功能已损坏,但在使用相同浏览器在本地运行时则不会。 我尝试使用chrome和Firefox(最新版本)
1- Here is the GitHub page not working properly
2- And here is the source code which is working locally on my computer
我在dragenter
事件的lib / list.js:84中放了一个断点。我们应该经历下一个街区。 event.dataTransfer.getData('source')
不会返回我们之前设置的值。
以下是源代码的一部分:(其余部分在GitHub上)
self_.itemContainer_.addEventListener(
'dragstart',
function(event) {
if(event.target.classList.contains('sosimplist-item')){
var parentToDrag = event.target.closest('.sosimplist-item');
parentToDrag.style.zIndex = 1;
parentToDrag.style.boxShadow = '3px 3px 3px grey';
event.dataTransfer.setData('elementId', parentToDrag.id);
event.dataTransfer.setData('source', 'item');
}else{}
},
false
);
self_.itemContainer_.addEventListener(
'dragenter',
function(event) {
event.preventDefault();
if(event.dataTransfer.getData('source') === 'item'){
var elementDragged = document.getElementById(event.dataTransfer.getData('elementId'));
if(elementDragged){
var parentTarget = event.target.closest('.sosimplist-item');
var isContainInThisList = parentTarget.parentNode.contains(elementDragged);
if(isContainInThisList){
elementDragged.nextSibling === parentTarget ?
elementDragged.parentNode.insertBefore(elementDragged, parentTarget.nextSibling) :
elementDragged.parentNode.insertBefore(elementDragged, parentTarget);
}else{}
}else{}
}else{}
},
false
);
答案 0 :(得分:0)
我正在回答自己,我通过不访问event.dataTransfer.getData
事件中的dragenter
来解决此问题。我正在使用本地对象来存储我需要的信息。
这个帖子激发了我的灵感:
HTML5 DnD dataTransfer setData or getData not working in every browser except Firefox
感谢您的帮助