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
}
});