javascript - 关于jquery的this,$(this)可以作为变量保存吗?
怪我咯
怪我咯 2017-04-10 17:02:30
[JavaScript讨论组]

遇到这么一个问题,如果把$(this)写在setTimeout里,就失效了,有什么办法可以提前保存$(this)吗?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(8)
PHP中文网

可以使用 $.proxy(function, context) 来保持了特定的上下文(context )语境。修改后如下:

$(document).on('mousedown', '#piece', function(e){
    timeOut = setTimeout($.proxy(function(){
       $(this).detach(); 
    }, this), 1000);
});
迷茫

下面用$(this)的地方直接用this_temp不就对了

大家讲道理

你不是已经保存到this_temp里了。用它就行了

PHPz

你已经把$(this)存为this_temp了,下次直接用就可以了

大家讲道理

SetTimeout的function的this已经改变了,用箭头函数吧

PHPz

你不是已经保存了么?this_temp

天蓬老师

可以啊,你已经定义了一个this_temp变量指向this ,你直接用this_temp就相当于在调用this了

PHPz
$("body").on("click", function(){
    var timeout = setTimeout(function(){
        console.log($(this).attr("class"));
    }.call(this), 1000);
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

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