2009-11-27 54 views
1

場景:訪問外部對象從jQuery的回調函數

My_Object = { 

    my_div: "#mydiv", 

    my_method: function() 
    { 
    $(this.my_div).fadeOut("slow", function() { $(this.my_div).fadeIn("slow"); }); 
    } 

} 

「this.my_div」不被認可,在淡入調用,如「這個」不指向原來的對象了。如何將原始對象傳遞給回調函數?

回答

2

店「這個」臨時變量:

My_Object = { 

    my_div: "#mydiv", 

    my_method: function() 
    { 
    var tmp = this; 
    $(this.my_div).fadeOut("slow", function() { $(tmp.my_div).fadeIn("slow"); }); 
    } 

} 
1

這是因爲淡出()回調裏面,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概念是一個有點混亂。

+0

我接受了你對這個場景的回答,然而在其他情況下,我只是做'var _this = this'並在回調函數中使用'_this'。哦,兄弟,3年前我不知道我在做什麼:D – 2012-07-19 19:03:13