我正在使用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
答案 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);
}
}
},
如果有效,我们最终可以向开发者提出请求。
答案 1 :(得分:0)
如果您需要支持IE8或IE7,您应该使用jmerery版本的Hammer插件。您可以下载here。
答案 2 :(得分: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>
&#13;