Backbone.js中视图绑定的事件顺序是什么?

时间:2014-04-30 15:49:13

标签: javascript backbone.js backbone-views backbone-events

var ViewA = Backbone.View.extend({
        events: { 'click a': 'do_something' },
        do_something: function() { console.log('ViewA::do_something()'); }
});

var ViewB = Backbone.View.extend({
        events: { 'click a.some_class': 'do_something' },
        do_something: function() { console.log('ViewB::do_something()'); }
});

////////

<a class="some_class">Click me</a>

我有2个视图设置,绑定到点击事件,如上所示。出于某种原因,ViewA的处理程序总是首先被调用。

我试过了:

  • 更改加载JS的顺序。
  • 更改视图初始化的顺序。

这让我相信这取决于选择器的特殊性,但是,鉴于ViewB中的选择器更多特定于ViewA中的选择器,这没有意义 - 为什么是否会首先调用更通用的选择器?

1 个答案:

答案 0 :(得分:0)

好的,我想出了这一点 - 对于未来遇到这种情况的任何人。事件的顺序由(按重要性顺序)确定:

  1. 视图“el”元素的特殊性
  2. 事件选择器的特异性
  3. 初始化视图的顺序