Hammer.js(IE8) - 对象不支持属性或方法'addEventListener'

时间:2013-08-16 19:35:43

标签: javascript jquery mobile touch hammer.js

我正在使用hammer.js获取网站的触摸菜单,并获得:

  

“对象不支持属性或方法'addEventListener'”   hammer.js,line 247 character 13

使用IE8。

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

知道如何解决这个问题吗?

Jquery曾经遇到过类似的问题: http://bugs.jquery.com/ticket/11127

3 个答案:

答案 0 :(得分:4)

从这里开始:addEventListener not working in IE8

您可以通过检查addEventListener的定义来修复代码功能:

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

如果有效,我们最终可以向开发者提出请求。

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

答案 1 :(得分:0)

如果您需要支持IE8或IE7,您应该使用jmerery版本的Hammer插件。您可以下载here

答案 2 :(得分:0)

试试吧。 https://github.com/egjs/hammerjs-compatible

&#13;
&#13;
<!--[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>
&#13;
&#13;
&#13;