addEvent完美封装(addEventListener兼容性封装)

addEventListener兼容各大浏览器封装

封装:addEvent.js

/**  
* element           要绑定事件的对象,及HTML节点。
* type              事件名称,attachEvent监听的事件前边的加上“on”,比如“onclick”和“onmouseover”,addEventListener与之相反。
* listener          要绑定的事件监听函数 
*/

const addEvent = function({element, type, callback}) {
    if (element.addEventListener) { // 支持使用 addEventListener()
        if (type.slice(0,2) === "on") // 以 "on" 开头,不需要,则去掉
            type = type.slice(2);
        element.addEventListener(type, callback);
    } else if (element.attachEvent) { // 支持使用 attachEvent()
        if (type.slice(0, 2) !== "on") // 没有以 "on" 开头,需要,则加上
            type = "on" + type;
        element.attachEvent(type, callback);
    }else{
        type.slice(0, 2) !== "on" ? element['on'+ type] = callback : element[type] = callback;
    }   
}
export default addEvent;

其他js引入

import addEvent from "@/public/js/addEvent"   
addEvent({
    element: window, 
    type: 'scroll', 
    callback: debounce(buriedPoint, 1000)  // or buriedPoint
  }); //滚动事件
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值