从jQuery CallBack函数访问外部对象

场景:

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

fondIn调用中未识别’this.my_div’,因为’this’不再指向原始对象。 如何将原始对象传递给回调函数?

将“this”存储在临时变量中:

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

那是因为在fa​​deOut()回调中,现在这个元素正在消失。 我假设你想要淡化它,所以这样做:

 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概念有点令人困惑。