4

ich nicht in der Lage bin das folgende Problem zu lösen:jQuery UI: Dropfähig ('drop' Ereignis, Toleranz: touch) Fehler in Safari (Mac)

Der Code unten in allen Browsern von arbeitet mac sowie Fenster, außer dass es arbeitet teilweise auf Macs Safari (5.1.5).

Hinweis: Es funktioniert auf Windows Safari (5.1.5).

Dies ist die Grundstruktur:

enter image description here

$(".div2").droppable({ 
     accept: '.div1', 
     tolerance: 'touch', 
     drop: function(){ 
         alert('dropped'); 
     } 
}); 

Also, im Grunde, wenn div1 berührt div2 sollte ausgelöst werden Veranstaltung fallen.

enter image description here

Aber der obige Fall löst nicht das Drop-Ereignis.

Der einzige Fall (siehe unten), die das Ablegeereignis in macs safari triggert, wenn die ziehbare div DIV1 vollständig die abwerfbaren div DIV2 gibt. Ich weiß einfach nicht warum?

enter image description here

verwendet Versionen:

jQuery: 1.7.2 
jQuery UI: 1.8.18 
Safari(mac): 5.1.5 

Update:

habe ich versucht, andere Optionen der Toleranz. Beide 'berühren' und 'schneiden' tun nicht wie gewünscht arbeiten. Aber 'Zeiger' funktioniert einwandfrei.

Gibt es eine andere Möglichkeit, die Funktionalität von "Toleranz: Touch" zu erreichen? Ich denke darüber nach, eine Kollision zwischen zwei Divs zu erkennen und dann die entsprechende Logik anzuwenden.

Jede Hilfe wird geschätzt.

Danke!

+1

Eine kurze Erklärung in Frage ist erforderlich, aber fehlerhafter Code, der die Live-Version des Problems zeigt, ist wirklich hilfreich - und es wird Menschen Sie besser verstehen lassen - in Zukunft versuchen, uns den Link zu jsfiddle.net mit Ihrem Problem zu geben Beispiel. – biphobe

+0

Ich hatte das gleiche Problem mit "Touch", also habe ich auch eine Arbeit gemacht.Es gibt eine JQuery-Erweiterung von Brandon Aaron (http://brandonaaron.net), um Kollisionen zwischen DOM-Elementen (streng genommen ein Element und ein JQuery-Set) zu erkennen. Ich verwende jetzt eine Anzahl von Kopien dieses Skripts auf einer Website, die ich gerade entwickle; das ursprüngliche Skript, eines, das feststellt, ob das erste Element vollständig von einem Mitglied der Menge enthalten ist, und schließlich eine Kopie, die überprüft, ob Element A sich innerhalb der x Anzahl von Pixeln eines Mitglieds der Menge befindet. Versuche mit dem Plugin zu spielen - irgendwelche Fragen? Bitte fragen :) –

+0

ich musste dann auch einen eigenen Kollisionsalgorithmus entwickeln, um die obige Bedingung zu erfüllen. –

Antwort

0

Versuchen Sie, das Element position: absolute !important; hinzuzufügen. Das ist die Lösung, die ich für dieses Problem gefunden habe. Andernfalls können Sie versuchen, ein Eltern-Div für das ziehbare/abwerfbare Div zu erstellen.