Sam*_*aye 5 javascript jquery backbone.js
我在renderbackbone.js函数中遇到了一些事件,更具体地说是a click,然而,我无法让它工作.
我有类似(但非常简化)的设置:
App.ProductView = Backbone.View.extend({
className: 'title_products_tab',
el: $('.title_products_tab'),
events: {
'click .product_list .edit_product' : 'edit',
Run Code Online (Sandbox Code Playgroud)
对于我的骨干视图的事件部分.在渲染函数中,我希望触发绑定.edit_product click事件:
render: function(){
console.log($._data( $('.title_products_tab .product_list .edit_product')[0], "events" ));
$('.title_products_tab .product_list .edit_product').trigger('click');
Run Code Online (Sandbox Code Playgroud)
哪个不起作用,_data元素是未定义的,但是,我知道事件确实有效,因为我的视图的其余部分相应地起作用.我似乎无法render在启动时或其他任何地方触发事件.
我想:
this.trigger('click .product_list .edit_product');
Run Code Online (Sandbox Code Playgroud)
但是会工作,再没有运气.
我也听说过,bindAll但我听说使用它不是一个好主意.
那么我如何,或者更确切地说,何时触发我的骨干视图的启动事件?
所以你可能会发现这很有趣(注意:Backbone 的代码):
var View = Backbone.View = function(options) {
this.cid = _.uniqueId('view');
this._configure(options || {});
this._ensureElement();
this.initialize.apply(this, arguments);
this.delegateEvents();
};
Run Code Online (Sandbox Code Playgroud)
尤其是最后一部分。事件在调用初始化方法之后绑定,因此在调用渲染方法之后绑定。事件尚未绑定。
(我想delegateEvents如果您确实需要按照您的方式进行操作,您可以手动调用)
| 归档时间: |
|
| 查看次数: |
1987 次 |
| 最近记录: |