Touch-Screen und Javascript DOM Mousedown-Ereignis
Habe ich eine javascript-web-Anwendung, verwendet einen touchscreen-browser ist webkit-basiert.
Ich habe ein problem mit diesem:
addEventListener("mousedown", function(event){
console.log('down fired');
event.target.classList.add('down');
}, true);
Wenn Sie mit einer Maus, das target-element der Klasse Hinzugefügt wird, sofort, wenn die Maustaste gedrückt ist, aber wenn über den touchscreen, das target-element der Klasse wird nicht geändert, wenn Sie den finger auf das element.
Das seltsame ist jedoch, das Konsole-log-Nachricht wird gesendet, auf die nach-unten-Ereignis sowohl für die Maus und klicken Sie auf den ts drücken.
Irgendwelche Vorschläge wie man dieses Problem lösen ??
Dank
BEARBEITEN
Habe ich noch das touchstart-event-listener, aber nicht das Feuer auf einen touch-event:
addEventListener("touchstart", function(event){
cl('touch fired');
}, true);
InformationsquelleAutor crankshaft | 2013-02-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weise zu spät, aber vielleicht hat jemand anderes könnte es:
event.target
funktioniert nicht auf den touchscreen, denn man konnte mehr als 1 finger, so gibt es mehr Ziele:InformationsquelleAutor Ro NL
Verwenden touchstart und touchend statt.
InformationsquelleAutor Code.Town
Obwohl in der Regel ein touch-Gerät sendet die Maus-events, wie erwartet, gibt es Besondere Veranstaltungen für touch-screens. Insbesondere 'touchstart' als äquivalent zu 'mousedown', und 'touchend'/'touchcancel", wie die Entsprechungen von 'mouseup'. Wenn Sie nicht zu überprüfen, welche Taste oder position berührt wird, können Sie in der Regel einen direkten Austausch mit Ihnen.
Durch die Art und Weise, touchend bedeutet, dass der Benutzer angehalten, den Bildschirm zu berühren. touchcancel tritt auf, wenn etwas passiert (wie ein nicht-browser-alert) , fängt die touch.
Wenn die Konsole.log funktioniert, aber nicht Ihre eigenen handler, Frage ich mich, ob es ein problem auf Ihrem mobilen Gerät, aber es ist nicht die Berichterstattung darüber, um Sie. Wenn Sie ersetzen Ihre Aktion mit etwas einfaches wie alert('Test');, geht das durch?
Hi, danke, das ist nicht ein mobiles Gerät, es ist ein embedded linux läuft arch linux und midori web-browser. Die Touchscreen-hardware ist die microchip mtouch, es gibt keine Treiber, es wird erkannt durch die O/S als HID-Maus, ich denke, dass ist der Grund, warum die touch-Ereignisse werden nicht erkannt. Ist es möglich, zu brechen aus der mosuedown Veranstaltung ?
Haha... ok, das ist einzigartig. Ich wirklich weiß nicht, warum es wäre ein ausbrechen aus der mousedown-Ereignisse. Wenn andere software behandelt es wie eine normale Maus, es sollte funktionieren, aber leider Ihr set-up ist entzieht sich meiner Kenntnis.
InformationsquelleAutor Mark Ormston