/ /引数として関数に 'event'を渡す - javascript、jquery

関数に引数として 'event'を渡す - javascript、jquery

私はJSとjQueryの両方に不慣れなので、どのような状況で合格する必要があるかについて少し混乱しています。 event 関数への引数として、そしてあなたはどんな状況に ない する必要があります。

例えば:

      $(document).ready(function() {

$("#foo").click(function() {
// Do something
});

});

      $(document).ready(function() {

$("#foo").click(function(event) {
// Do something
});

});

回答:

回答№1は4

event 引数にはいくつかの用途があります。実際にそれを利用しようとしているのであれば、ハンドラへの引数としてそれを指定する必要があるだけです - JavaScriptは文句なしに引数の可変数を扱います。

あなたが見る最も一般的な用途は、イベントを引き起こしたアクションのデフォルトの振る舞いを防ぐことです。

$("a.fake").click(function(e) {
e.preventDefault();
alert("This is a fake link!");
});

...クラスとのリンクをすべて中止します fake 実際に行くことから href クリックしたとき同様に、フォームの送信をキャンセルすることができます。検証メソッドで。これは 好きな return falseしかし、もっと信頼性があります。

jQueryの event オブジェクトは実際には標準のクロスブラウザバージョンです。 event 議論はIE以外のすべてで提供されました。これは本質的にショートカットであり、どのイベントハンドラでどのブラウザを使用しているかを確認する代わりに、コードパスを1つだけ使用できます。

(jQuery以外のコードを読むと、以下のようなたくさんのことがわかります。これは、IEの欠点を回避するために行われます。

function(e) {
e = e || window.event; // For IE

それは痛みです、そしてライブラリはそれを扱うことをとても簡単にします。)

jQueryのドキュメントにそのプロパティの完全な説明があります。 基本的に、あなたが何かを見たらそれを含めてください必要なら、そうでなければ心配する必要はありません。常に含めておきたいのです。


回答№2については2

イベントをハンドラの本体で使用する場合にのみ必要です。


回答№3の場合は1

あなたはjQueryを使っているので、置くだけです event ハンドラーでイベントを使用する必要がある場合は、引数として、 keypress イベント。

JSでは、jQueryやPrototypeなどがない場合は、次のものを渡す必要があります。 event Firefoxのような標準に準拠したブラウザのパラメータとして。 IEは実際にはグローバル変数を維持します window.event。だからあなたのハンドラ(sansライブラリ)では、引数が undefined;もしそうなら、グローバル変数をつかみます。

function eventHandler(evt) {
var theEvent = evt || window.event;
//use the event
}

しかしjQueryのようなライブラリがあなたのためにそれを大事にします。

私は正直に言うまで図書館を使うことを勧めませんあなたはその言語を学びました。しかし、これが仕事のためのものであれば、必ずライブラリを使用しますが、自分でJSの詳細を学ぶので、あなたはそれをよりよく理解することができます。