js怎么移除事件不成功

supermai 2013-09-10 02:15:05


<script type="text/javascript">
//绑定事件的函数:
/**
* @description 事件绑定,兼容各浏览器
* @param target 事件触发对象
* @param type 事件
* @param func 事件处理函数
*/
function addEvents(target, type, func) {
if (target.addEventListener) //非ie 和ie9
target.addEventListener(type, func, false);
else
if (target.attachEvent) //ie6到ie8
target.attachEvent("on" + type, func);
else
target["on" + type] = func; //ie5
};

//删除事件的函数:
/**
* @description 事件移除,兼容各浏览器
* @param target 事件触发对象
* @param type 事件
* @param func 事件处理函数
*/
function removeEvents(target, type, func){
if (target.removeEventListener)
target.removeEventListener(type, func, false);
else
if (target.detachEvent)
target.detachEvent("on" + type, func);
else
target["on" + type] = null;
};

var f1=function(){alert('41');}
var f2=function(){alert('42');}

addEvents(b4,"click",f1); //绑定事件的函数,b4是按钮id
addEvents(b4,"click",f2); //绑定事件的函数,b4是按钮id

removeEvents(b4,"click",f1);//删除事件的函数,b4是按钮id
</script>




按了b4按钮,什么反应都没有,按道理只移除了b4的f1事件函数,为什么没有执行f2函数呢。如果将removeEvents(b4,"click",f1);这句去掉后,按b4按钮f1和f2函数都会运行。
...全文
367 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
用firebug调试下
  • 打赏
  • 举报
回复
佩服1楼,看的太仔细了
supermai 2013-09-10
  • 打赏
  • 举报
回复
靠!!!~~~~~ 我服了我自己啊!!!! 居然会有这么低级错误,TMD
枫醉秋 2013-09-10
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
removeEvents(b4,"click",f1) 这个是全角的分号了,报错,改成英文状态的 removeEvents(b4, "click", f1); //删除事件的函数,b4是按钮id
+++++1
tony4geek 2013-09-10
  • 打赏
  • 举报
回复
楼上说对了
Go 旅城通票 2013-09-10
  • 打赏
  • 举报
回复
removeEvents(b4,"click",f1) 这个是全角的分号了,报错,改成英文状态的 removeEvents(b4, "click", f1); //删除事件的函数,b4是按钮id

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧