1

だから私はこのJSを持っていて、コードを実行すると「eは定義されていません」と表示されます-何が欠けていますか?

$('ul.result-filters > li a').click(toggleFilters());

function toggleFilters(e) {
   e.preventDefault();
   //do more stuff
}
4

5 に答える 5

9

これを使って :

$('ul.result-filters > li a').click(toggleFilters);

toggleFilters()関数自体を渡す代わりに、の結果を渡していました。

于 2012-11-30T17:15:12.780 に答える
4
$('ul.result-filters > li a').on('click', toggleFilters);

function toggleFilters(e) {
   e.preventDefault();
   //do more stuff
}

関数の後に括弧を追加すると、すぐに実行され、結果が返されます。関数を参照してクリックで呼び出すには、括弧を削除します。

これにより、イベントをtoggleFilters関数で使用できるようになります。

于 2012-11-30T17:15:39.003 に答える
1

クリックするハンドラー名を渡す代わりに、関数を呼び出しています。toggleFilters()から括弧を削除します

変化する

$('ul.result-filters > li a').click(toggleFilters());

$('ul.result-filters > li a').click(toggleFilters);
于 2012-11-30T17:15:32.057 に答える
1

e = e || window.eventイベントを確実に開催するためにいつでも行うことができます。

于 2012-11-30T17:17:07.017 に答える
0

関数呼び出しtoggleFilters()の代わりに関数名を使用する必要があります。

$('ul.result-filters > li a').on('click', toggleFilters);

function toggleFilters(e) {
 e.preventDefault();
//do more stuff
}

ありがとう

于 2012-11-30T17:21:53.653 に答える