touchend-event in ios webkit nicht feuern?
Ich versuche, die Umsetzung eines Menüs für ein ios-webkit-basierte Anwendung, in der der Benutzer berührt/Klicks und hält die Menü-Taste ('.menu_item'), nach 500ms das sub-Menü öffnet sich (div.slide_up_sub_menu), und ein Benutzer sollte in der Lage sein, um den finger/die Maus bis zu einem Untermenü li Element und release.
<li class="menu_item">
ASSET MANAGEMENT
<div class="slide_up_sub_menu hidden_menu">
<ul class="submenu">
<li>Unified Naming Convention</li>
<li>Version Control</li>
</ul>
</div>
</li>
Die Anwendung sollte dann in der Lage sein zu ermitteln, in welchem Untermenü das touchend - /mouseup-Ereignis passiert ist. Ich bin verbindlich, ein touchstart-event auf den Menüpunkt, warten für 500ms, und hinterher zu sagen das Untermenü zu zeigen. Wenn ein Nutzer stellt den finger ein touchend-Ereignis auslösen soll schließen Sie das Untermenü. Wenn der Benutzer aufgehört hat, Ihre Note auf ein Untermenü, sollte es erkannt werden. Derzeit Detektion von denen Untermenüpunkt ein mouseup-Ereignis passiert ist, funktioniert in Safari auf dem desktop:
$('ul.submenu li').live('mouseup', function(e){
console.log($(e.currentTarget)); //works on the desktop
});
aber wenn ich das gleiche tun mit einem touchend-handler es funktioniert nicht auf einem ipad:
$('ul.submenu li').live('touchend', function(e){
console.log($(e.currentTarget)); //never fires
});
wenn ich für jeden touchend-event bekomme ich eine Referenz auf das parent-sub-menu-item, wenn ich am Ende die Note auf ein Untermenü:
$(document.body).bind('touchend', function(e) {
console.log($(e.target).html()); //logs ASSET MANAGEMENT
});
aber keine Referenz auf das Untermenü.
Hat jemand eine Idee, warum ein touchend-Ereignis nicht ausgelöst wird, auf die Untermenüpunkte?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
touchend nicht ausgelöst, weil touchcancel gefeuert hat, früher. Wenn Sie wollen full-touch gleicht die Behandlung, die Sie anrufen
in der callback von "touchmove" Ereignis, andernfalls, wenn ein touchmove-Ereignis tritt auf, wenn der browser entscheidet, dass dies ein scroll-Ereignis ausgelöst wird, touchcancel und nie Feuer touchend.
Vielleicht ist es ein bisschen spät zu Antworten.
Dieses Ereignis wird nie ausgelöst, da die touch-Ereignisse auslösen, auf die sehr element, auf dem touchstart passiert ist. So, das zu tun, was Sie wollen, ist eine Lösung des Dokuments verwenden.elementFromPoint Methode, an die Sie senden die entsprechenden x-und y-Koordinaten.
Wenn Sie nicht brauchen, um verwenden Sie die multitouch-Daten haben, können Sie halten mit mouseup auf dem ipad.
weiter Lesen:
http://developer.apple.com/library/IOS/#documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html