我有以下 object
function AnimatedObject(object)
{
this.object = object;
/*
Functions
*/
this.fadeOutAnimation = fadeOutAnimation;
this.objectToggle = objectToggle;
this.objectClick = objectClick;
}
function fadeOutAnimation()
{
this.object.animate({
opacity: 0.25,
left: "+=150",
height: "toggle"
}, 2500, function() {
this.objectToggle();
});
}
function objectToggle()
{
this.object.toggle();
}
从我的animate
职能内部,我被称为this.objectToggle();
但是,当它完成动画时,我得到了 undefined is not a function
我很有把握,这是因为内部回调函数没有对 object
我的问题是如何给它引用我的对象,从而允许我从回调函数内部调用其函数?
将函数绑定到正确的上下文:
function fadeOutAnimation()
{
this.object.animate({
opacity: 0.25,
left: "+=150",
height: "toggle"
}, 2500, function() {
this.objectToggle();
}.bind(this));
}
或者只是存储对以下内容的引用this
:
function fadeOutAnimation()
{
var that = this;
this.object.animate({
opacity: 0.25,
left: "+=150",
height: "toggle"
}, 2500, function() {
that.objectToggle();
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句