Javascript render()中的backbone.js触发事件
我在backbone.js的Javascript render()中的backbone.js触发事件,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我在backbone.js的渲染函数中绑定了一些事件,更具体地说是一个点击,但是,我无法让它工作 我有一个类似(但非常简化)的设置: App.ProductView = Backbone.View.extend({ className: 'title_products_tab', el: $('.title_products_tab'), events: { 'click .product_list .edit_product' : 'edit', 对于我的主干视图的事件部分。在渲
渲染
函数中绑定了一些事件,更具体地说是一个点击
,但是,我无法让它工作
我有一个类似(但非常简化)的设置:
App.ProductView = Backbone.View.extend({
className: 'title_products_tab',
el: $('.title_products_tab'),
events: {
'click .product_list .edit_product' : 'edit',
对于我的主干视图的事件部分。在渲染函数中,我希望触发绑定的。编辑产品单击事件:
render: function(){
console.log($._data( $('.title_products_tab .product_list .edit_product')[0], "events" ));
$('.title_products_tab .product_list .edit_product').trigger('click');
这不起作用,元素的\u数据
未定义,但是,我知道事件确实起作用,因为我的视图的其余部分会相应地起作用。启动时,我似乎无法在render
或任何其他地方触发事件
我想:
this.trigger('click .product_list .edit_product');
然而,这将起作用,再次没有运气
我还听说了bindAll
,但我听说使用它不是一个好主意
那么,我该如何,或者更确切地说,什么时候触发主干视图的启动事件呢?所以您可能会发现这很有趣(注意:主干代码):
特别是最后一部分。事件在调用initialize方法后绑定,因此在调用render方法后。这些事件还没有确定下来
(我想如果您真的需要这样做,您可以手动调用delegateEvents
)何时调用渲染方法?在initialize方法中?@Loamhoof实际上,在init方法中,我想您可以自己调用该方法:this.edit()
。将一行代码更改为另一行代码,这似乎不是一件坏事;)这是一个好主意,虽然它附加到一个产品列表,如果该列表的大小为1,我为用户选择该列表的唯一条目,通过内部编码编程这样做对我来说并不好;我目前正在使用主干作为一种手段来标准化已经存在的表单的前端;啊,我只做代表,谢谢:)
var View = Backbone.View = function(options) {
this.cid = _.uniqueId('view');
this._configure(options || {});
this._ensureElement();
this.initialize.apply(this, arguments);
this.delegateEvents();
};