从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"); }); } }
那是因为在fadeOut()回调中,现在这个元素正在消失。 我假设你想要淡化它,所以这样做:
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
概念有点令人困惑。