0

jQuery Countdown pluginを使用するコードに取り組んでいます。プラグインでは、カウントダウンがゼロになったときに実行されるコールバック関数を渡すことができます。

{
    until: new Date(remaining),
    onExpiry: runSomeAction
}

runSomeActionを使用$(this)して、ゼロになったタイマーをピックアップします。ラップしたいのですrunSomeActionが、これを行う方法を知っている唯一の方法は、次のようにパラメーターを追加することです。

{
    until: new Date(remaining),
    onExpiry: function() {
        // my logic here...
        runSomeAction($(this));
    }
}

しかし今、すべての$(this)参照をrunSomeActionパラメーター名に変更する必要があります。

runSomeAction引き続き使用でき$(this)、変更する必要がないようにラップする方法はありますか?

4

2 に答える 2

6

callまたはapply JavaScript 関数を使用しthisて、特定の関数のコンテキストを変更できます。このようなものがうまくいくはずです:

onExpiry: function() {
    // my logic here...
    runSomeAction.call($(this));
}

runSomeAction 関数内では、関数が呼び出された時点からthis同じになります。$(this)

于 2013-05-02T23:05:53.217 に答える