0

I am successfully adding "dragover", "dragleave" and "drop" event handlers from a "dragenter" triggered callback function.

IE11 won't add the tree event handlers though. Any suggestions?

    // Drag-and-drop initiation. 
        if (!isMobile() && window.File && window.FileList && window.FileReader) {
            // Declare global variables.
            var dragStartsInside = false;

            // Initialize scripts.
            addEvent(window, "load", function () {
                for (var e=0; e < elementsArray.length; e++) {
                    // Setup dnd listeners. 
                    addEvent(elementsArray[e], "dragstart", function() {dragStartsInside = true; } ); 
                    addEvent(elementsArray[e], "dragenter", dragEnter); 
                    addEvent(elementsArray[e], "dragend", function() {dragStartsInside = false; } ); 
                }
            }); 

            // Drag and drop events. 
            function dragEnter(evt) { 
                cancelBubble(evt); 
                if (!dragStartsInside) {
                    // Add "dragStartsInside"-dependent events. 
                    addEvent(evt.target, "dragover", dragOver); 
                    addEvent(evt.target, "dragleave", dragLeave); 
                    addEvent(evt.target, "drop", drop); 
                }
                return cancelDefaultAction(evt);
            }

            function dragOver(evt) {
                cancelBubble(evt);
                ...
                return cancelDefaultAction(evt);
            }

            function drop(evt) {
                cancelBubble(evt);
                dragLeave(evt); 
                ...
                return cancelDefaultAction(evt);
            }

            function dragLeave(evt) {
                removeEvent(evt.target, "dragover", dragOver); 
                removeEvent(evt.target, "dragleave", dragLeave); 
                removeEvent(evt.target, "drop", drop); 
            }
        }
  • possible duplicate of [attachEvent Doesn't work in IE > 8.0](http://stackoverflow.com/questions/20180046/attachevent-doesnt-work-in-ie-8-0) –  Jul 25 '15 at 09:12
  • _addEvent_ is custom: `function addEvent(element, eventType, callbackFunction) { if (element.addEventListener) element.addEventListener(eventType, callbackFunction, false); else if (element.attachEvent) element.attachEvent('on' + eventType, callbackFunction); }` – user2949795 Jul 25 '15 at 13:27
  • Also _cancelBubble_ and _cancelDefaultAction_ are custom: `function cancelBubble(e) { var event = e ? e : window.event; if (event.stopPropagation) event.stopPropagation(); else if (event.cancelBubble!=null) event.cancelBubble = true; }` `function cancelDefaultAction(e) { var event = e ? e : window.event; if (event.preventDefault) event.preventDefault(); event.returnValue = false; return false; }` – user2949795 Jul 25 '15 at 13:30

0 Answers0