2014-10-06 2 views
5

Ich wollte Hammer JS lernen, indem ich ein einfaches Programm um ein Element um den Bildschirm zu ziehen, ziemlich genau wie das gleiche auf der Hammer homepage.Hammer JS v2.0.4 erkennt 'panstart' oder 'panmove' nur in Chrome 37.0 nicht

Ich habe den Code auf dem Hammer github page, die den gleichen Code auf der Homepage verwendet scheint geschrieben. Ich habe die Arbeit in Chrome (37.0/OSX) getestet. Nachdem ich eine Weile damit gearbeitet habe und das Element nicht mehr bewegen konnte, habe ich dieselbe Seite in Safari und FF geöffnet. Es funktionierte perfekt in beiden Browsern.

pare Dinge nach unten, habe ich nur noch die erforderlich ist, um den Code zu sehen ein Ereignisauslöser: wird

var mover = document.getElementById("mover"); 

var mc = new Hammer.Manager(mover); 
mc.add(new Hammer.Pan({ threshold: 0, pointers: 0 })); 

mc.on("panstart panmove", function(ev) { 
    console.log(ev); 
}); 

Nichts in Chrome angemeldet, aber ich habe wie in Safari und FF erwartet ordnungsgemäße Protokollierung. Ich erweiterte den Event-Listener um 'Pan, Panend, Pancancel, Panleft, Panright, Panup, Pandand'. Diese Ereignisse würden sich in Chrome anmelden, so dass es scheint, als ob nur Panstart und PanMove ignoriert wurden.

Also dieser Code wird auf der hammer.js-Seite in Chrome laufen, so klar Chrome sieht die Panstart und panmove Ereignisse in diesem Browser, es ist einfach nicht in meinem Code passiert. Was bedeutet, dass mir etwas fehlt, obwohl ich den Code von ihrer Seite kopiert habe. Ich habe überprüft, dass wir auf der gleichen Hammer-Version sind, aber ich bin mir nicht sicher, was ich von hier noch überprüfen muss.

Hat jemand anderes dieses Problem gefunden und gelöst? Oder weiß ich vielleicht, was ich falsch mache, um dieses Problem zu verursachen?

Danke.

+0

Ich würde ein neues Problem in der hammer.js Repo für diese Art von Fehler erstellen. – enjoylife

+0

das gleiche Problem auf Chrom 38 – Guglie

+0

Ich hatte gerade ein sehr ähnliches Problem (Chrome 43). 'panend' wurde aufgerufen, aber nicht gestartet oder verschoben und arbeitet in FF. Neustart des Browsers magisch behoben, aber leider die paar Stunden Debugging nicht wiederhergestellt! – contrebis

Antwort

-1

In der Hammer-Site sagen Sie deutlich "für bessere Leistung auf langsameren Geräten sollten Sie versuchen, Callbacks so einfach wie möglich zu halten." Ich denke, das ist bei Browsern genauso!

Vielleicht ist Ihr Problem

var mover = document.getElementById("#mover"); 

Warum Sie "#mover" eingeben, statt "Mover"? Das "#" Zeichen ist für JQuery und du verwendest einfaches Javascript. Es verwirrt mich, dass in einigen Browsern das funktioniert, also stelle ich mir vor, dass deine ElementID tatsächlich mit dem "#" beginnt ...

Lass es mich wissen, wenn es geholfen hat, bitte!

+0

Meh, Entschuldigung. Das war ein Tipp von mir. Ich habe das Element richtig ausgerichtet (kein "#", verifiziert, als ich den Code in DevTools durchging). Nicht sicher, woher das kam, wenn man den Code hier hineinkopierte. – DrHall

Verwandte Themen