Javascript 子视图中的Backbone.JS自定义事件

Javascript 子视图中的Backbone.JS自定义事件,javascript,backbone.js,Javascript,Backbone.js,为了简单起见,我有两种观点,一种是父母/孩子。子级正在使用触发器引发事件。我在父母的处理者身上看不到这一点。以下条款有效吗 var parent = Backbone.View.extend({ events: { "childevent": "run" }, run: function(e) { console.log(e); }, render: function() { /* render the child here */ } }); v

为了简单起见,我有两种观点,一种是父母/孩子。子级正在使用触发器引发事件。我在父母的处理者身上看不到这一点。以下条款有效吗

var parent = Backbone.View.extend({
    events: { "childevent": "run" },
    run: function(e) {
       console.log(e);
    }, 
    render: function() { /* render the child here */ }
});

var child = Backbone.View.extend({
    someAction: function() { this.trigger('childevent'); }
});

它不应该是
events:{“childevent”:“run”}
吗?在代码中,无法访问此处的实际匿名函数。

找到了<代码>$(this.el).trigger('childevent')工作。

主干将对视图节点的jQuery引用存储在
this.$el
属性中,这样您就可以使用它节省一些性能,而不是通过
$(this.el)
重新计算引用


显然很晚了,但对于任何遇到这种情况的人来说:

视图上的events属性用于从views el或$el元素中的组件自动绑定Html DOM事件,语法包括UI事件和选择器作为成对键:

事件:{“单击#某个按钮”,“单击处理程序”}


若要从其他模型或视图中侦听事件,请使用此选项。listenTo(target,…)

我实际上有这个选项,但它仍然不起作用,我只是在这里输入了错误的选项。很好,你也可以试试这个。缓存的jQuery属性是$el,如果我遵循的策略是视图只能访问其负责的元素及其子元素,该怎么办?如何向家长发送事件?
// use "this.$el.trigger()" to refer to jQuery's object
this.$el.trigger('childevent');