我有两个观点,为简单起见,父母/子女。孩子正在使用触发器来举办活动。我没有在父母的处理程序中看到它。以下是否有效?
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'); }
});
答案 0 :(得分:18)
想出来! $(this.el).trigger('childevent');
有效。
答案 1 :(得分:2)
不应该是events: { "childevent": "run" }
吗?无法在代码中访问此处的实际匿名函数。
答案 2 :(得分:2)
Backbone存储对this.$el
属性中视图节点的jQuery引用,因此您可以使用它来节省一些性能,而不是通过$(this.el)
重新计算引用。
// use "this.$el.trigger()" to refer to jQuery's object
this.$el.trigger('childevent');
答案 3 :(得分:1)
显然很晚,但对于遇到此事的其他人来说:
视图上的events属性用于从视图el或$ el元素中的组件自动绑定Html DOM事件,语法涉及UI事件和选择器作为对中的键:
事件:{“点击#someButton”,“clickHandler”}
要收听其他模特或视图中的事件,请使用this.listenTo(target,.....)