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

Kal*_*ien 6 javascript mobile jquery touch hammer.js

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

"对象不支持属性或方法'addEventListener'"hammer.js,第247行第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);
    }
},
Run Code Online (Sandbox Code Playgroud)

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

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

Irv*_*nin 4

从这里开始:addEventListener 在 IE8 中不起作用

您可以通过检查 like 的定义来修复代码函数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);
        }
    }
},
Run Code Online (Sandbox Code Playgroud)

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

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