Ich versuche ein Menü für eine ios webkit basierte App zu implementieren, in dem der Benutzer eine Menüschaltfläche berührt / klickt und hält ('.menu_item'), nach 500ms öffnet sich das Untermenü (div.slide_up_sub_menu), und a Der Benutzer sollte in der Lage sein, den Finger / die Maus in ein Untermenü zu bewegen und loszulassen.
%Vor%Die Anwendung sollte dann in der Lage sein zu erkennen, in welchem Untermenü das Ereignis touchend / mouseup aufgetreten ist. Ich verbinde ein Touchstart-Ereignis mit dem Menüelement, warte 500 ms und gebe anschließend das anzuzeigende Untermenü an. Wenn ein Benutzer seinen Finger loslässt, sollte ein Touchend-Ereignis ausgelöst werden, das das Untermenü schließt. Wenn der Benutzer seine Berührung auf einem Untermenüelement beendet hat, sollte es erkannt werden. Gegenwärtig wird in Safari auf dem Desktop erkannt, in welchem Untermenü ein mouseup-Ereignis aufgetreten ist:
%Vor%Aber wenn ich dasselbe mit einem Touchend-Handler mache, funktioniert es nicht auf einem iPad:
%Vor%Wenn ich nach jedem Touchend-Ereignis suche, kann ich einen Verweis auf den übergeordneten Untermenüpunkt erhalten, wenn ich die Berührung auf einem Untermenüpunkt beende:
%Vor%aber keine Bezugnahme auf den Untermenüpunkt.
Hat jemand eine Idee, warum ein Touchend-Ereignis nicht auf die Untermenüpunkte ausgelöst wird?
Danke
touchend feuert nicht, weil touchcancel früher gefeuert hat. Wenn Sie eine vollständige Touch-even-Behandlung wünschen, müssen Sie
anrufen %Vor%im Callback des "touchmove" -Ereignisses, andernfalls, wenn ein Touchmove-Ereignis auftritt, wenn der Browser entscheidet, dass dies ein Scroll-Ereignis ist, wird es einen Touchcancel auslösen und niemals touchend auslösen.
Vielleicht ist es ein bisschen spät zu antworten. Dieses Ereignis wird niemals ausgelöst, da Berührungsereignisse auf genau das Element ausgelöst werden, auf dem der Touchstart stattfand. Um das zu tun, was Sie wollen, ist eine Lösung die Methode document.elementFromPoint, an die Sie die entsprechenden x- und y-Koordinaten senden.
Tags und Links javascript ios webkit touch-event