Wie kann ich die Weiterleitung nach einem "Drop" -Ereignis stoppen?

8

Nach dem Löschen einer Datei in div in Firefox wird die Webseite in diese Datei umgeleitet. Ich habe versucht, diese Weitergabe unter Verwendung von jQuerys e.preventDefault() in drop -Handler zu stoppen und ist fehlgeschlagen.

Siehe diese Demo . Wenn Sie eine Datei in #test einfügen, wird die Webseite nicht umgeleitet, sondern in #test1 Ich will wissen warum. Sollte ich Handler immer an dragenter , dragover , dragleave und drop binden, um die Weitergabe nach drop zu verhindern?

Aktualisierung:

Ich habe einige Tipps zum html5doctor gefunden:

  

Um dem Browser mitzuteilen, dass wir dieses Element einfügen können, müssen wir nur noch   Abbrechen des Dragover-Ereignisses Da sich IE jedoch anders verhält, haben wir   müssen dasselbe für das Ereignis draenter tun.

Und Mozilla Ansprüche :

  

Ein Listener für die Ereignisse dragenter und dragover wird verwendet   Geben Sie gültige Drop-Ziele an, dh Orte, an denen Elemente gezogen werden können   fallen gelassen werden.

Aber ich teste diese Demo auf Firefox, #test funktioniert und #test1 nicht, scheint Mozilla gemacht Fehler, und html5doctor hat Recht: Firefox benötigt dragover nur, um drop work zu machen.

    
Rufus 20.01.2012, 07:58
quelle

2 Antworten

14

Das Ereignis ondragover muss in Google Chrome und Safari abgebrochen werden, damit das Ereignis ondrop ausgelöst werden kann.

    
xdazz 20.01.2012, 08:27
quelle
0

Ich bemerkte, dass es nicht nur genug war, um onDragOver abzubrechen, sondern ich musste onDragDrop und onDragLeave auch abbrechen. Im Folgenden zeige ich, wie sich der Benutzer verhält:

%Vor%

Und dann dein Element ...

%Vor%     
HoldOffHunger 31.07.2017 15:28
quelle

Tags und Links