8

通常、次のように匿名の Jquery 関数にイベントを渡すことができます。

$(".click_me").on("click", function(e) {
  e.preventDefault();
});

ここで、匿名関数を削除しても、イベントを渡したいとしましょう。

function onClickMe(e){
  e.preventDefault();
}

$(".click_me").on("click", onClickMe(e));

残念ながら、これは期待どおりには機能しません。次のエラーが表示されます。

ReferenceError: e is not defined

では、他にどのようにイベントを外部関数に渡すことができますか?

4

1 に答える 1

19

関数参照を渡すだけで、jQuery が引数の受け渡しを処理します (イベントは常に最初の引数としてハンドラー関数に渡されます)。そう:

function onClickMe(e){
  e.preventDefault();
}

$(".click_me").on("click", onClickMe);
于 2013-02-12T16:25:59.887 に答える