【问题标题】:Backbone.js click event not triggeredBackbone.js 点击事件未触发
【发布时间】:2013-07-04 06:45:39
【问题描述】:

查看:

 Member.Views.Popover = Backbone.View.extend({
    template: "member/default",
    tagName: 'a',
    className: 'header-auth member',
    events: {
      'click a.member': 'toggle'
    },        
    initialize: function() {    
      //todo
    },
    toggle: function(){   
      console.log("toggle");
    }
  });

输出:

<a class="header-auth member">
    //content from template
</a>

第一个问题:首先我只定义了一个没有 tagName 和 className 的模板,因为这个数据已经在模板中设置了。但这用 div 包裹了模板。为了避免这种情况,我设置了 tagName 和 className 并从模板中删除了这些数据,因为现在它是由主干设置的。

第二个问题:现在我使用 tagName,点击事件不再起作用。

任何想法如何解决这个问题?

【问题讨论】:

  • 你在哪里调用视图渲染?
  • 您可以将click a.member 更改为仅click,因为该元素是您的视图。
  • @kalley 这行得通^^ 将其作为答案
  • @Matt app.useLayout("main-layout").setViews({ ".aClass": new Member.Views.Popover({model : this.member }) }).render() ;在 main.js 中

标签: javascript jquery backbone.js


【解决方案1】:

可以应将click a.member 更改为仅click,因为该元素是您的视图。