1

this親関数と同じになるように、jQueryコールバック関数のコンテキストを変更する方法を考えています。

次の例を見てください。

var context = this;
console.log(context);

element.animate(css, speed, type, function () {
     var new_context = this;
     console.log(new_context);
});

new_contextに等しくなるようにするにはどうすればよいcontextですか?

私はこれを行うことができることに気づきました:

var new_context = context;

しかし、関数に別のコンテキストを使用するように指示するより良い方法はありますか?

4

1 に答える 1

1

閉鎖を利用できます:

var context = this;
console.log(context);

element.animate(css, speed, type, function () {
     var new_context = context; // Closure
     console.log(new_context);
});

これを行うこともできます:

// First parameter of call/apply is context
element.animate.apply(this, [css, speed, type, function () {
     var new_context = this;
     console.log(new_context);
}]);
于 2013-01-08T10:02:58.423 に答える