の最後にjavascriptオブジェクトの関数を呼び出すことはできません。jqueryのは、私は視覚効果のためのjQueryのビットを持つjavascriptオブジェクトを持っているアニメーション
私はこれにアクセスすることができます。 はメインのアニメーション機能の中にありますが、私はこれにアクセスできません。ラインthis.myOtherFunction()で、私は(これ)と思うのでthis.myOtherFunctionが呼び出されていない最後の機能からどんな(アニメーションが完了したとき)
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);
};
。グローバルオブジェクトではなく、現在のjqueryアニメート関数を指します。
だから私は、すべての既存のvarとthisCopy使用アニメーション機能の前にはJavaScript VAR
var thisCopy = this;
、標準として(本)のコピーを作成しようとしています。私は、実際のオブジェクトは、他の機能で使用するためにvarsは更新する必要があるので、これは動作します...
しかし、私は(これ)をコピーする必要はありません。
また、myOtherFunctionを通常の変数として宣言してから、myOtherFunctionを()を呼び出さずに呼び出すと、関数が呼び出されたにもかかわらず、オブジェクト変数にアクセスできなくなりました。
アニメーションが完了した後、私は)this.myOtherFunction(呼び出すことができますどのようにとグローバルオブジェクト変数のすべてにアクセスすることがありますか?
私はそれがうまくいかないと思っていました。私はまた、thisCopyで新しいvarを作成することは(これ)には及ばないと仮定しましたが、そうしています。あなたの助けをありがとうJuhana – PaulMrG
私は1つのページ(2番目のオブジェクトはコースの別の名前と呼ばれる)で同じオブジェクトの2つを使っていくつかのテストを行いましたが、thisCopyに問題は見つかりませんでした。しかし、ローカルコードを作成するのと同じ方法で作成されているので、後でコードが数百行増えたときに衝突が生じる可能性があり、ページ上にオブジェクトの複数のインスタンスを使用することが懸念されます。私は心配すべきですか? – PaulMrG