Prototype-event-stop

提供:Dev Guides
移動先:案内検索

プロトタイプ-イベントstop()メソッド

このメソッドは、イベントの伝播を停止し、デフォルトのアクションが最終的にトリガーされるのを防ぎます。

ブラウザが発生したイベントを処理する方法には2つの側面があります-

  • 通常、ブラウザーは、document.sのルート要素に到達するまで、イベントが発生した実際の要素でイベントハンドラーをトリガーし、次に親要素などでイベントハンドラーをトリガーします。 これはイベントバブリングと呼ばれ、イベント伝播の最も一般的な形式です。 イベントを処理した直後にこの伝播を停止したい場合があります。また、バブルが発生し続けるのを望まないかもしれません(または、その必要性はありません)。
  • コードがイベントを処理する機会を得ると、そのイベントにデフォルトの動作がある場合、ブラウザはそれを処理します。 たとえば、リンクをクリックするとそれらに移動します。フォームを送信すると、サーバー側に送信されます。 1行のフォームフィールドでReturnキーを押すと送信されます。 独自の処理を行う場合、このデフォルトの動作を防止したい場合があります。

これらの側面のいずれかを停止すると、99.9%のケースで、もう一方の側面も同様に防止されるため、Prototypeはこの停止機能に両方をバンドルします。 イベントオブジェクトで呼び出すと、伝播が停止し、デフォルトの動作が妨げられます。

構文

Event.stop(event);

戻り値

NA.

特定のフィールドが空の場合にフォームがサーバー側に送信されないようにするコードスニペットを次に示します。

Event.observe('signinForm', 'submit', function(event) {
   var login = $F('login').strip();
   if ('' == login) {
      Event.stop(event);
     //Display the issue one way or another
   }
});