2013-08-16 13 views
6

sto usando hammer.js per un menu tocco per un sito, e ottenere:Hammer.js (IE8) - L'oggetto non supporta la proprietà o il metodo 'addEventListener'

"Object doesn't support property or method 'addEventListener'" hammer.js, line 247 character 13

con IE8.

Il codice reale da hammer.js che non funziona:

/** 
* simple addEventListener 
* @param {HTMLElement} element 
* @param {String}  type 
* @param {Function}  handler 
*/ 
bindDom: function(element, type, handler) { 
    var types = type.split(' '); 
    for(var t=0; t<types.length; t++) { 
     element.addEventListener(types[t], handler, false); 
    } 
}, 

Qualsiasi idea di come posso risolvere questo problema?

Jquery usato per avere un problema simile: http://bugs.jquery.com/ticket/11127

+0

Date un'occhiata qui http://stackoverflow.com/questions/9769868/addeventlistener-not-working-in-ie8, provare a correggere il codice e, infine, tirare una richiesta agli sviluppatori. –

+0

Non è necessario eseguire un pull, è necessario utilizzare la versione jquery per il supporto IE8/IE7. –

+0

"dovresti usare la versione jquery" - Non funziona neanche. – Eirinn

risposta

4

A partire da qui: addEventListener not working in IE8

si può risolvere la funzione del codice controllando la definizione di addEventListener come:

bindDom: function (element, type, handler) { 
    var types = type.split(' '); 
    for (var t = 0; t < types.length; t++) { 
     if (!element.addEventListener) { 
      element.attachEvent(types[t], handler); 
     } else { 
      element.addEventListener(types[t], handler, false); 
     } 
    } 
}, 

se funziona alla fine possiamo inviare una richiesta agli sviluppatori.

Documenti: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener?redirectlocale=en-US&redirectslug=DOM%2FEventTarget.addEventListener

0

Se avete bisogno di supporto per IE8 o IE7 si dovrebbe utilizzare la versione jQuery di Hammer plugin. È possibile scaricarlo here.

+1

da quello che ho capito, hai ancora bisogno di Hammer.js con jquery.hammer.js. L'errore è all'interno di Hammer.js in modo che non risolvesse l'errore. –

+0

Quindi non capisci: D, Hammer.js ha due versioni ... una è pura JavaScript e non supporta IE8 e IE7 (hammer.js), l'altra è una versione jquery del martello. js e supporto IE8/IE7 basta dare un'occhiata alla tabella di compatibilità https://github.com/EightMedia/hammer.js/wiki/Compatibility –

+0

Lui capisce grazie mille mi è costato un'ora. La versione jQuery non funziona dando questo errore: SCRIPT445: Object non supporta questa azione che sospetto sia la stessa. – Eirinn

0

Provalo. https://github.com/egjs/hammerjs-compatible

<!--[if IE 8]> 
 
<script type="text/javascript" src="../dist/hammerjs.compatible.js"></script> <- like this. 
 
<![endif]--> 
 
<script src="../bower_components/hammer.js/hammer.js"></script>

Problemi correlati