17

このコード行の意味を誰かに説明してもらえますか?

function(e) { e = e || event; e.returnValue = false; return false; }

パラメータに名前が付けられているのはなぜeですか?
'myparam'に変更すると機能しますか?
どういうe = e意味ですか?

変数event(後||)はどこで宣言されていますか?とはe.returnValue?

4

3 に答える 3

25

これはすべて基本的なイベント管理ですが、欠落していe.preventDefault()ます...

イベントハンドラーが起動されたとき、それを分解するには:

  • 一部のブラウザーは、イベント データを保持するコールバックにパラメーターを渡します (これは標準に準拠した方法です)。
  • 他のブラウザー (ほとんどが古い IE) は、代わりにイベント データを入れますwindow.event(ここでは、単にeventでアクセスします。これは、その名前のローカル変数がないことに依存しているため、危険です)。

次に、e = e || event;「パラメーターが渡されなかった場合は、デフォルトで」という標準的な方法があります||。この場合、イベント パラメータが渡されないと、グローバル変数が検索されます。

e.returnValueイベントがデフォルト アクションを発生させないようにする 3 つの方法のうちの 1 つです。他の2つはe.preventDefault && e.preventDefault()(投稿したコードには明らかに欠けています)、およびreturn false;

于 2013-03-20T23:56:40.877 に答える
5

この行は、IE8 以下を他のすべてのブラウザーと同じように機能させるためのものです。他のすべてのブラウザーは、ターゲット要素 ( e) をイベント関数に渡します。

したがって、このコードの機能は次のとおりです。

e存在する場合は、保持しeます。存在しない場合は、古いバージョンの IE を使用しているため、windows.eventオブジェクトを に割り当てますe。現在、すべてのブラウザが同じように動作します。

于 2013-03-20T23:58:39.510 に答える
1

このコードは、eオブジェクトが存在するかどうかをテストし、存在しない場合はオブジェクトeventを使用して e に割り当てます。その後、属性returnValueを false に設定し、false を返します。

これは、イベント オブジェクトが呼び出されたe場合でもevent.

于 2013-03-20T23:56:08.683 に答える