为什么不用匿名函数也解绑不了?

为什么不用匿名函数也解绑不了?

<!DOCTYPE html>

<html>

<head>

<title></title>

<style type="text/css">

#a{

width: 200px;height: 100px;

background: red;line-height: 100px;text-align: center;

color: orange;font-size: 50px;

}

</style>

</head>

<body>

<input type="button" name="b" id="dianji" value="点击">

<div onclick="alert('哈哈')">哈哈

</div>

<script type="text/javascript">

var button=document.getElementById("dianji");


button.addEventListener("click",function c(){

alert("123");

},false);


button.removeEventListener("click",function c(){

alert("123");

},false);

</script>

</body>

</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕慕子 2020-03-22 18:27:42

同学你好,因为js语法中规定所有声明的函数都是独立的, 同学的写法就是使用function关键字声明了两个函数,虽然名字一样,但是它俩之间没有任何关系,所以无法解绑。

如果想要实现绑定事件后解绑的效果,参考老师上一条回答中的示例代码。

祝学习愉快~

好帮手慕慕子 2020-03-22 16:29:18

同学你好, 同学的代码虽然使用的不是匿名函数,但是绑定事件和解绑事件中函数不是同一个函数,所以解绑不了。

建议修改:在外面定义函数,在绑定和解绑事件中传入函数名,这样就是针对同一个函数了。

http://img1.sycdn.imooc.com//climg/5e7721d209f52f3c16160890.jpg

同学可以测试理解下,祝学习愉快~

  • 提问者 大白前端 #1
    老师,不都是函数名为c的函数吗?怎么就不一样了?
    2020-03-22 16:30:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师