2014-10-06 4 views
5

Volevo imparare Hammer JS creando un semplice programma per trascinare un elemento sullo schermo, praticamente come lo stesso su Hammer homepage.Hammer JS v2.0.4 non riconosce "panstart" o "panmove" solo in Chrome 37.0

Ho utilizzato il codice pubblicato su Hammer github page, che sembra essere lo stesso codice utilizzato nella home page. Stavo testando il lavoro in Chrome (37.0/OSX). Dopo aver lavorato con esso per un po 'e non riuscendo a far muovere l'elemento, ho aperto la stessa pagina in Safari e FF. Ha funzionato perfettamente in entrambi i browser.

per sbucciare le cose, ho aggiunto solo la richiesto di codice per vedere un trigger di evento:

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); 
}); 

Nulla viene registrato in Chrome, ma ottengo una corretta registrazione come previsto in Safari e FF. Ho esteso l'ascoltatore dell'evento includendo "pan, panend, pancancel, panleft, panright, panup, pandown". Questi eventi si registrano in Chrome, quindi sembra che solo panstart e panmove siano stati ignorati.

Quindi, questo codice verrà eseguito nella pagina hammer.js in Chrome, quindi chiaramente Chrome visualizza gli eventi panstart e panmove in quel browser, ma non sta succedendo nel mio codice. Il che significa che in qualche modo mi manca qualcosa, nonostante copi il codice dal loro sito. Ho controllato che eravamo sulla stessa versione di Hammer, ma non sono sicuro di cosa altro da qui ho bisogno di controllare.

Qualcun altro ha riscontrato e risolto questo problema? O forse sa cosa sto facendo male per creare questo problema?

Grazie.

+0

Vorrei creare un nuovo problema sul repository hammer.js per questo tipo di errore. – enjoylife

+0

stesso problema su chrome 38 – Guglie

+0

Ho appena avuto un problema molto simile (Chrome 43). 'panend' veniva chiamato ma non si avviava o non si muoveva e funzionava in FF. Il riavvio del browser è stato riparato magicamente, ma purtroppo non è stato ripristinato il paio di ore trascorse nel debugging! – contrebis

risposta

-1

Nel sito Hammer dire chiaramente "per prestazioni migliori su dispositivi lenti, dovresti cercare di mantenere le tue richiamate il più semplice possibile". Penso che sia lo stesso con i browser!

Forse il tuo problema è

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

Perché si digita "#mover" invece di "motore"? Il segno "#" è per JQuery e stai usando un semplice javascript. Mi confonde che in alcuni browser funzioni, quindi immagino che il tuo ElementID inizi di fatto con il "#" ...

Fammi sapere se ha aiutato, per favore!

+0

Meh, scusa. È stato un errore di battitura da parte mia. Stavo prendendo di mira l'elemento correttamente (no '#', verificato quando stavo scavalcando il codice in DevTools). Non sono sicuro da dove è venuto a copiare il codice qui. – DrHall

Problemi correlati