什么叫先绑定了?那后绑定点击按钮也没反应啊

什么叫先绑定了?那后绑定点击按钮也没反应啊

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
	<title>变量、作用域</title>
    
</head>
<body>
	<button>1</button>
	<button>2</button>
	<button>3</button>
    <script type="text/javascript">
   
         for (var i = 0; i < 5; i++) {
              var btns = document.getElementsByTagName('button');
                  	btns[i].onclick = function () {
                  	     
		    	alert(i + 1); 
	    	};
	    	
   } 
 
    </script>
</body>
</html>


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

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

3回答
好帮手慕糖 2019-09-18 18:21:18

同学你好,这个不是没有弹窗哦。是想要实现4-5的效果,点击每一个都弹出对应的索引吗?

1、首先这里弹出4的原因是:

(1)这里是因为这些事件是先绑定在触发的。

(2)执行循环的时候,给每个绑定了,这个时候i还不全是3,但是到最后点击的时候,是已经绑定好了的,也已经循环完了,所以点击的时候,就是最后的值了。

2、该题的实现方式在任务中是有提示的哦,单击方法在循环外面定义。

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

可以参考如下:

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

希望能帮助到你,祝学习愉快!

好帮手慕糖 2019-09-18 14:10:27

同学你好,这里又测试了一遍,是可以弹出弹窗的哦。

建议:同学可以单独的写一个alert语句,尝试下是否有弹出,看是否是浏览器禁止了弹窗。也可以换个浏览器测试下。

若还是有问题,也可以将你修改之后的代码粘贴过来,老师在测试下哦。

祝学习愉快!

  • 提问者 Ting111 #1
    弹出来是4
    2019-09-18 14:25:41
好帮手慕糖 2019-09-11 17:26:07

同学你好,1、先绑定就是给这个元素添加了事件,这里是点击事件,先添加了,但是并没有触发,在点击的时候才触发。

2、如下,测试是有效果的哦,点击的时候有弹出。

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

3、这里只有3个按钮,所以i小于3就可以了。

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

希望能帮助到你,祝学习愉快!

  • 提问者 Ting111 #1
    改了以后不能弹框啊,你们最近回答的都是些什么啊
    2019-09-18 10:16:52
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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