为什么我的javascript在github页面上不能正常工作

Why my javascript does not work properly on a github page?

本文关键字:常工作 工作 不能 javascript 我的 github 为什么      更新时间:2023-09-26

我的JavaScript在GitHub页面上无法正常工作:GitHub页上的拖放功能已损坏,但在使用同一浏览器本地运行时不会损坏。我尝试了chrome和Firefox(最新版本)

1-这是GitHub页面无法正常工作

2-这是在我的电脑上本地工作的源代码

我在lib/list.js:84中的dragenter事件上放置了一个断点。我们应该穿过下一个街区。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
         );

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

这条线索启发了我:

HTML5DnD数据传输setData或getData不适用于除Firefox 以外的所有浏览器

感谢您的帮助