老师,为什么它不起作用直接显示呢

老师,为什么它不起作用直接显示呢

<!DOCTYPE html>


<html>


<head>


    <meta charset="UTF-8">


    <title>HTML事件</title>


</head>


<body>


  <button id='but1'>开始</button>

  <button id="but2">结束</button>


 <script>

     but1=document.getElementById("but1");

     but=document.getElementsByTagName("button");

     function nbt(but,col){

  but.style.color=col;

}

 

but1.onmouseover=nbt(but1,"purple");

but[1].onmouseover=nbt(but[1],"red");

     

     

 </script> 

</body>


</html>


正在回答

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

2回答

同学你好, DOM0级事件中函数加了括号会直接调用,不需要等到手动触发事件,所以这样写会有问题。例如:

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

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

不需要点击按钮就会执行demo方法中的内容。

当前编程练习也是一样的道理,自己再测试理解下,祝学习愉快!

好帮手慕码 2020-05-05 17:19:47

同学你好,解答如下:

代码中书写相当于直接调用了nbt方法。建议修改:

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

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

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 精慕门2504353 #1
    没明白,直接调用nbt方法为什么不可以呢?
    2020-05-06 10:08:17
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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