原生javascript实现类似jquery on方法的行为监听

原生javascript有addEventListener和attachEvent方法来注册事件,但有时候我们需要判断某一行为甚至某一函数是否被执行了,并且能够获取前一行为的参数,这个时候就需要其他方法来实现了。

项目中的原始场景是有若干个tab切换,tab组件当然是已经写好的,现在需要每次点击后保存localstorage等其他操作,需要监听tab是否被点击。下面是简单的实现事件监听方法:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件注册</title>
</head>
<body>
    <button id="test">点击</button>
    <script type="text/javascript">
    var BC=(function(){
         var attachFunctionList = {};
//事件通知
var notify=function(notifyName){ var args=Array.prototype.slice.call(arguments,1); attachFunctionList[notifyName].fun.apply(attachFunctionList[notifyName].scope,args); return this; }
//事件监听
var attach = function(notifyName, callback) { if(typeof notifyName ==="string"&&typeof callback==="function"){ attachFunctionList[notifyName]={ fun:callback }; } return this; } return { attach:attach, notify:notify } })(); var $test=document.getElementById("test"); $test.onclick=function(){ var name="hz"; BC.notify("clicked",name);//按钮点击后通知该事件已经发生了,并把当前参数传递过去 }
//监听到按钮被点击后进行其他操作 BC.attach(
"clicked",function(name){ alert("事件注册成功!参数是:"+name); }) </script> </body> </html>

 

转载于:https://www.cnblogs.com/hutuzhu/p/4305318.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值