javascript - js回调函数中的this和外边的this是否为同一个
本文介绍了javascript - js回调函数中的this和外边的this是否为同一个的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
$(".rsp .clearfix li:last-child").click(function() {
//标签开关
$(this).children("span").toggleClass('on');//这里的this指向点击的li
console.log(this);//打印当前选中元素
//显示当前点击li的下一个div
$(this).parents(".rsp").next(".rate").slideToggle("speed",function(){
$(this).hide("slow");//这里的this和外层的this是否为同一个???
//这里的this指向的是回调函数外边选中的元素
});
});
js回调函数中的this和外边的this是否指向同一个对象
已解决
不是同一个对象
外层的指向当前选中元素,回调函数中的为触发回调的元素
如图
第一个this指向li
第二个this指向触发回调的元素div
解决方案
不是的,外面的 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的下一个div
$(this).parents(".rsp").next(".rate").slideToggle("speed",function(){
//...
// `that` or `$(that)` 做些什么事
//...
$(this).hide("slow");//这里的this和外层的this是否为同一个???
});
});
这篇关于javascript - js回调函数中的this和外边的this是否为同一个的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文