1

多くの場合、jQuery ではビルド内関数 (hide、show、slideDown など) を呼び出す必要があり、通常は匿名のラップ関数を介して呼び出します。

$('button').click(function () {
  $('div').animate({
    opacity: 0.25
  }, 2000, function() { $(this).hide() })
})

このような参照によってこれらの関数を渡す方法はありますか?

$('button').click(function () {
  $('div').animate({
    opacity: 0.25
  }, 2000, $(this).hide)
})

jQueryがこの関数をオブジェクトに追加する方法が原因で不可能だと思いますが、誰かが問題が発生する理由を詳しく説明できるといいでしょう.

4

1 に答える 1

2

hideへの呼び出しには のコンテキストがないため、試した方法では機能しません$(this)。コールバックとして渡す関数を、呼び出す必要があるオブジェクトにバインドすることで、そのようにすることができます。

$('button').click(function () {
    $('div').animate({
        opacity: 0.25
    }, 2000, $.fn.hide.bind($(this)));
});

これが実際のです。

于 2013-03-04T09:46:32.527 に答える