为什么我的javascript在github页面上无法正常工作?

时间:2015-12-24 10:09:03

标签: javascript github github-pages

我的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
         );

1 个答案:

答案 0 :(得分:0)

我正在回答自己,我通过不访问event.dataTransfer.getData事件中的dragenter来解决此问题。我正在使用本地对象来存储我需要的信息。

这个帖子激发了我的灵感:

HTML5 DnD dataTransfer setData or getData not working in every browser except Firefox

感谢您的帮助

相关问题