Prototype - Event stop() 方法

此方法可停止事件的传播并防止其默认操作最终被触发。

事件启动后,浏览器处理事件的方式有两个方面 −

  • 浏览器通常会在事件发生的实际元素上触发事件处理程序,然后在其父元素上触发事件处理程序,依此类推,直到到达 document.s 根元素。这称为事件冒泡,是最常见的事件传播形式。您可能非常希望在刚处理完事件时停止此传播,并且不希望它继续冒泡(或认为不需要冒泡)。

  • 一旦您的代码有机会处理事件,如果该事件具有默认行为,浏览器也会处理它。例如,单击链接会导航到它们;提交表单会将它们发送到服务器端;在单行表单字段中按下回车键即可提交,等等。如果您自己处理,您很可能希望阻止此默认行为。

因为在 99.9% 的情况下,停止其中一个方面意味着同时阻止另​​一个方面,所以 Prototype 将两者都捆绑在此停止函数中。在事件对象上调用它会停止传播并阻止默认行为。

语法

Event.stop(event);

返回值

NA。

示例

以下是一段代码片段,如果某个字段为空,则阻止将表单发送到服务器端。

Event.observe('signinForm', 'submit', function(event) {
   var login = $F('login').strip();
   if ('' == login) {
      Event.stop(event);
      // 以某种方式显示问题
   }
});

prototype_event_handling.html