2013-08-16 23 views
6

kullanıyorum hammer.js özelliği veya yöntemi destekleyecek ve elde değildir: IE8 ileHammer.js (IE8) - Nesne bir site için dokunmatik menü için 'addEventListener'

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

.

çalışmıyor hammer.js gerçek kodu: düzeltebilirim nasıl

/** 
* 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); 
    } 
}, 

bir fikrin? http://bugs.jquery.com/ticket/11127

+0

burada http://stackoverflow.com/questions/9769868/addeventlistener-not-working-in-ie8 bir göz atın, kod düzeltmek için denemek ve sonunda bir istek çekin geliştiricilere –

+0

Çekme yapmanıza gerek yok, jquery sürümünü IE8/IE7 desteğine kullanmalısınız. –

+0

"jquery sürümünü kullanmalısınız" - Ya işe yaramıyor. Anladığım kadarıyla – Eirinn

cevap

4

buradan başlayarak:

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

eğer o: addEventListener not working in IE8

Sen gibi addEventListener tanımını kontrol ederek kod işlevi düzeltebilirsiniz

jQuery benzer bir sorunu için kullanılan Sonunda geliştiricilere bir istek çekebiliriz çalışır.

Dokümanlar: IE8 veya IE7 için desteğe ihtiyacınız varsa https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener?redirectlocale=en-US&redirectslug=DOM%2FEventTarget.addEventListener

0

Çekiç eklenti jQuery sürümünü kullanmalısınız. here'u indirebilirsiniz.

+1

, hala jquery.hammer.js ile Hammer.js'ye ihtiyacınız var. Hata, Hammer.js'nin içinde olduğu için hatayı çözmez. –

+0

Yani anlamıyorsunuz: D, Hammer.js'nin iki versiyonu var ... bir tanesi saf bir JavaScript ve IE8 ve IE7'yi (hammer.js) desteklemiyor, diğeri ise bir jQuery eklenti versiyonudur. js ve destek IE8/IE7 sadece uyumluluk tablosuna bir göz atın https://github.com/EightMedia/hammer.js/wiki/Compatibility –

+0

O anladım, bu bana bir saat maliyeti çok teşekkür ederim. JQuery sürümü, bu hatayı vererek işe yaramıyor: SCRIPT445: Nesne, aynı olduğundan şüphelenen bu eylemi desteklemiyor. – Eirinn

0

Bunu deneyin. 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>