情景:
My_Object = {
my_div: "#mydiv",
my_method: function()
{
$(this.my_div).fadeOut("slow", function() { $(this.my_div).fadeIn("slow"); });
}
}
'this.my_div'未在fadeIn调用中被识别,因为'this'不再指向原始对象。如何将原始对象传递给回调函数?
答案 0 :(得分:2)
将“this”存储在临时变量中:
My_Object = {
my_div: "#mydiv",
my_method: function()
{
var tmp = this;
$(this.my_div).fadeOut("slow", function() { $(tmp.my_div).fadeIn("slow"); });
}
}
答案 1 :(得分:1)
那是因为在fadeOut()回调中,this
现在是淡出的元素。我想你想把它淡化,所以就这样做:
My_Object = {
my_div: "#mydiv",
my_method: function() {
$(this.my_div).fadeOut("slow", function() {
$(this).fadeIn("slow"); // refers to the same object being faded out
});
}
}
Javascript this
概念有点令人困惑。