Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript render()中的backbone.js触发事件_Javascript_Jquery_Backbone.js - Fatal编程技术网

Javascript render()中的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', 对于我的主干视图的事件部分。在渲

我在backbone.js的
渲染
函数中绑定了一些事件,更具体地说是一个
点击
,但是,我无法让它工作

我有一个类似(但非常简化)的设置:

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();
};