2013-08-16 9 views
6

私はサイトのタッチメニューがhammer.jsを使用して、取得しています:IE8とHammer.js(IE8) - オブジェクトは、プロパティまたはメソッドをサポートしていません 'のaddEventListener'

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

動作していないhammer.jsから実際のコード:私はこの問題を解決する方法を

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

任意のアイデアを? http://bugs.jquery.com/ticket/11127

+0

コードを修正し、最終的に要求を引っ張ってみてください、ここhttp://stackoverflow.com/questions/9769868/addeventlistener-not-working-in-ie8を見てみましょう開発者に。 –

+0

あなたはプルをする必要はありません、IE8/IE7のサポートにjqueryバージョンを使用する必要があります。 –

+0

"jqueryバージョンを使うべきです" - どちらも動作しません。 – Eirinn

答えて

4

ここから始まっ:

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

それならば:addEventListener not working in IE8

はあなたが好きaddEventListenerの定義を確認することで、コードの機能を修正することができます

jQueryが同様の問題を持っていました我々は最終的に開発者に要求を引き出すことができます。

ドキュメント:https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener?redirectlocale=en-US&redirectslug=DOM%2FEventTarget.addEventListener

0

あなたはIE8やIE7のサポートが必要な場合は、ハンマープラグインのjQueryのバージョンを使用する必要があります。 hereをダウンロードできます。

+1

私が理解しているところから、jquery.hammer.jsでHammer.jsが必要です。エラーはHammer.js内部にあり、エラーを解決することはできません。 –

+0

あなたは理解できません:D、Hammer.jsには2つのバージョンがあります.1つは純粋なJavaScriptで、IE8とIE7(hammer.js)はサポートしていません。もう1つはハンマーのjqueryプラグインバージョンです。 jsとIE8/IE7のサポートは、互換性表を見てください。https://github.com/EightMedia/hammer.js/wiki/Compatibility –

+0

これは私に1時間かかるのです。 jQueryのバージョンは、このエラーを出すこともできません:SCRIPT445:オブジェクトは、私は同じと思われるこのアクションをサポートしていません。 – Eirinn

0

お試しください。 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>

関連する問題