老师,这样写为什么不可以

来源:2-4 编程练习

李小圆_

2019-06-26 18:58:53

$('div').mousedown(function () {
    console.log(this);
    $(this).css({
        'background-color': 'red'
    });
}).text('背景颜色为红色').mouseup(function () {
    $(this).css({
        'background-color': 'yellow'
    });
}).text('背景颜色为黄色');

为什么这里的背景为红色触发不了啊

还有为什么这里的this指向的是http://img.mukewang.com/climg/5d134fbc00017f4601950019.jpg这个div标签而不是http://img.mukewang.com/climg/5d134fc500017bf200730020.jpg这个jQuery对象?

感谢老师解答。

写回答

1回答

好帮手慕星星

2019-06-26

你好,

(1)这样写不对的哦,打开页面显示文字为黄色:

http://img.mukewang.com/climg/5d13553e00010e6402320220.jpg

这是因为链式调用执行到最后,红色替换掉了白色,然后黄色替换掉了红色,所以文字会一直显示黄色。

链式调用并不是说前面一个调用完了后面才会调用,如果是这种情况,不需要进行操作的,那些可以自动完成的就会按照顺序执行。

这里可以修改为:

http://img.mukewang.com/climg/5d1355dd0001208205700279.jpg

文本填充放到事件里面来写。

(2)关于this的问题已经在另一个相似问题中进行了回复:

http://class.imooc.com/course/qadetail/128920

可以查看一下哦。

祝学习愉快!

0

0 学习 · 14456 问题

查看课程