我有一个包含许多这样的行的插件:
document.addEventListener('keypress', function(e) {
this.drop.addEventListener('click', function(e) {
我想在顶部有一些javascript重新定义addEventListener,所以它实际上在旧浏览器中使用了attachEvent(我可以使用导航器对象)。我不想为上面的每一行代码做if语句。
答案 0 :(得分:0)
var addEvent = function (ele, event, func) {
if (ele.addEventListener) {
ele.addEventListener(event, func, false);
} else if (ele.attachEvent) {
ele.attachEvent('on' + event, func);
} else {
ele['on' + event] = func;
}
};
答案 1 :(得分:0)
我认为最好的方法是自己添加此活动。
这是我能想到的最简单的实现:
if (!Element.addEventListener)
Element.prototype.addEventListener = function(event,handler, placeholder) {
this.attachEvent('on'+event,handler);
}
在页面开头运行此功能后,您应该可以在元素上使用addEventListener
。我写了应该,因为你需要更多这样的函数才能在所有浏览器上使用相同的代码。您最好的选择是使用现有代码(如polyfill)来处理所有这些。