【发布时间】:2014-09-27 14:27:46
【问题描述】:
我正在寻找使视图独立的方法。因此,视图的事件被限制在该视图中,而不是进入子元素或父元素的元素。
backbone.js 框架使用 jQuery .on 方法将事件绑定到视图 (view.el) 的顶部元素。由于我有嵌套视图,当我单击视图 B 的按钮时,事件也会在视图 A 上触发。我知道我可以为视图 B 的按钮单击添加一个处理程序并返回 false,但是这样我需要知道父视图的所有事件并始终处理所有这些事件。
下面是问题的一个例子:http://jsfiddle.net/57RAM/3/
我想点击 MyViewB 按钮并且不触发 ViewA 的事件。
我尝试在视图 B 的事件中添加 'all': -> return false,但没有成功。
有什么建议吗?
【问题讨论】:
-
事件传播为什么重要?没有捕捉所有事件的好方法 - 您可以检查方法是否以 'on' 开头,例如 stackoverflow.com/questions/5848598/…,仅此而已。如果你这样做,通常会被认为是糟糕的架构,所以我想知道为什么。
-
@DominicTobias 这只是一个例子。我想有孤立的观点,但这似乎并不简单。如果父视图有一个带有“提交”类的按钮,我不想关心它的一个孩子是否已经拥有它。但这似乎很重要,我想创建孤立的视图会变得更加复杂。
-
正确隔离的只有 Web 组件
标签: jquery backbone.js backbone-views backbone-events jquery-on