javascript - js回调函数中的this和外边的this是否为同一个
大家讲道理
大家讲道理 2017-04-11 12:03:48
[JavaScript讨论组]
    $(".rsp .clearfix li:last-child").click(function() {
        //标签开关
        $(this).children("span").toggleClass('on');//这里的this指向点击的li
        
         console.log(this);//打印当前选中元素
        
        //显示当前点击li的下一个p
        $(this).parents(".rsp").next(".rate").slideToggle("speed",function(){
            $(this).hide("slow");//这里的this和外层的this是否为同一个???
            //这里的this指向的是回调函数外边选中的元素
        });
    });

js回调函数中的this和外边的this是否指向同一个对象

已解决
不是同一个对象

外层的指向当前选中元素,回调函数中的为触发回调的元素
如图
第一个this指向li
第二个this指向触发回调的元素p

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(1)
怪我咯

不是的,外面的 this 应该是 li:last-child 那个dom。
而里面的 this 是 next('.rate') 这个dom
如果以需要在里面使用外面的那个 this , 代码可以改成

$(".rsp .clearfix li:last-child").click(function() {
    //标签开关
    $(this).children("span").toggleClass('on');//这里的this指向点击的li
    var that = this; // 储存外面的 this
    //显示当前点击li的下一个p
    $(this).parents(".rsp").next(".rate").slideToggle("speed",function(){
        //...
        // `that` or `$(that)` 做些什么事
        //...
        $(this).hide("slow");//这里的this和外层的this是否为同一个???
    });
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号