我有一个JavaScript对象,带有一点jQuery的视觉效果。jquery不能在动画结束时调用javascript对象函数
我可以访问此。 不管里面的主动画功能,但是我不能访问这个。 末任何从功能(当动画完成)
this.myDiv1 = 'myScrollableDiv';
this.myDiv2 = 'myDivToScrollTo';
this.test = 'It works';
$("#"+this.myDiv1).animate({
scrollTop: $("#"+this.myDiv2).position().top - $("#"+this.myDiv1).position().top
}, 500, function() {
this.myOtherFunction();
});
this.myOtherFunction = function() {
alert(this.test);
};
this.myOtherFunction不叫,因为我认为(这)在该行this.myOtherFunction();指的是当前的jquery动画函数,而不是全局对象。
所以我试图创造的(本)复印件作为一个标准的JavaScript变种
var thisCopy = this;
animate函数之前,然后用thisCopy与所有现有增值经销商。这工作...
但是,我不想复制(这),因为我需要更新真正的对象变量用于其他功能。
我也尝试将myOtherFunction声明为普通变量,然后调用myOtherFunction而不使用(),它调用函数但仍然不能访问对象变量。
如何在动画完成后调用this.myOtherFunction()并可以访问所有全局对象变量?
我认为这不行,但它确实如此。我还假定在thisCopy中创建一个新的var不会继续(this),但它确实如此。感谢您的帮助Juhana – PaulMrG 2012-04-01 13:40:00
我已经在一个页面上做了一些与2个相同对象的测试(第二个对象叫做当然不同的名称),并且没有发现任何与thisCopy有关的问题。但这是一个问题,因为它的创建方式与创建本地变量的方式相同,以至于当代码增长几百行时,可能会有冲突,并且在页面上使用该对象的多个实例。我应该担心吗? – PaulMrG 2012-04-02 10:23:14