在Meteor中停止事件传播

时间:2012-05-02 04:34:23

标签: events meteor

我使用Meteor的event maps连接了一些基本的click事件。

如何在处理事件后阻止事件传播?

Meteor的文档state

  

现在,事件处理程序与jQuery和事件连接起来   你收到的对象是一个jQuery事件对象。

但是,return falsee.stopPropagation()似乎都无效。

2 个答案:

答案 0 :(得分:6)

目前,stopPropagation在有限的情况下工作。为了在两个处理程序之间停止传播,必须在不同的模板上指定处理程序,并且在内部和外部模板之间必须有一个介入的DOM节点容器。目前正在开发修复程序,并将进入即将发布的版本。

您可以发布您的代码要点,以便确保您的特定案例可以添加吗?

作为一种解决方法,您可以尝试e.stopImmediatePropagation(),它由jQuery提供,并且应该阻止其他任何处理程序运行。

答案 1 :(得分:2)

我在研究这个问题时遇到了这个问题。 Blaze事件地图的文档是here

对于流星中的这个问题,您需要根据需要考虑2个功能:

  

stopPropagation()

     

防止事件传播(冒泡)到其他元素。在此事件映射和其他事件映射中仍会触发匹配相同元素的其他事件处理程序。

     

stopImmediatePropagation()

     

阻止在此事件上运行所有其他事件处理程序,包括此事件映射中的其他处理程序,冒泡处理的处理程序以及其他事件映射中的处理程序。

我想要的是停止冒泡并停止传播到其他Meteor事件处理程序。所以event.stopImmediatePropagation()做了这个伎俩,并不是上面建议的解决方法。