原型 - 事件 stop() 方法



此方法停止事件傳播,並最終阻止觸發其預設操作。

在瀏覽器引發事件後,它處理事件的方式有兩個方面:

  • 瀏覽器通常在實際發生事件的元素上觸發事件處理程式,然後在其父元素上觸發,以此類推,直到到達 document.s 根元素。這稱為事件冒泡,是事件傳播最常見的形式。在剛剛處理完一個事件並且不希望它繼續冒泡(或認為沒有必要)時,你很有可能希望停止這種傳播。

  • 一旦你的程式碼有機會處理事件,如果該事件有預設行為,瀏覽器也會處理它。例如,單擊連結會導航到它們;提交表單會將它們傳送到服務端;在單行表單欄位中按 Return 鍵會提交它,等等。如果你自己進行處理,則很有可能希望阻止此預設行為。

因為在 99.9% 的情況下,停止其中一個方面意味著阻止另一個方面,所以 Prototype 在此 stop 函式中將兩者捆綁在一起。在事件物件上呼叫它會停止傳播並阻止預設行為。

語法

Event.stop(event);

返回值

不可用。

示例

下面是一個程式碼片段,如果某個欄位為空,則會阻止將表單傳送到服務端。

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