2-8-编程练习,为什么这样写不行?

2-8-编程练习,为什么这样写不行?

正确代码:

<input type="button" value="开始" onmousemove="changeColor(this,'purple')" onmouseout="changeColor(this,'gray')">
<input type="button" value="结束" onmousemove="changeColor(this,'yellow')" onmouseout="changeColor(this,'gray')">

<script type="text/javascript">
    function changeColor(element, colorValue)
    {
        element.style.color = colorValue;
    }
</script>


把上述代码改成以下,为什么就不行呢?

<input type="button" value="开始" onmousemove="changeColor('purple')" onmouseout="changeColor('gray')">
<input type="button" value="结束" onmousemove="changeColor('yellow')" onmouseout="changeColor('gray')">

<script type="text/javascript">
    function changeColor(colorValue)
    {
        this.style.color = colorValue;
    }
</script>


正在回答

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

3回答

同学你好,不能只传递一个哦,只传递一个不知道指向的是哪个元素,需要传递两个。

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

好帮手慕糖 2019-09-19 16:47:49

同学你好,1、第一种写法,传递了this指向的是当前触发事件的元素,所以可以给这个元素设置字体颜色。

2、而第二种写法,没有传递this,这里函数中的this,指向的是window对象,不是这个元素,无法直接设置字体颜色的,可以输出查看下,例:

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

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

希望能帮助到你,欢迎采纳。

祝学习愉快!

  • 如果希望函数只传递color值作为参数,只要一个参数,应该如何写呢?
    2019-09-19 16:59:57
提问者 我学习太差被关起来了 2019-09-19 16:45:34

如果希望函数只传递color值作为参数,只要一个参数,应该如何写呢?

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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