如何在骨干中的动态生成按钮上绑定事件?

如何在backbone.js中的动态生成按钮上绑定click事件?

window.PackageView = Backbone.View.extend({ tagName: "div", className: "package-template", events:{ 'click #display-nodes' : 'main', // This button is declared in my HTML code and calls main method successfully. 'click .display' : 'disp', // This is dynamic button generated with class as display }, getAction: function(nodeId){ // Get Actions from NodeId and generate buttons $('.nodes').append(""); //Generate Buttons $(".nodes button").addClass("display"); }, disp: function(){ alert("Inside Disp Function"); }, 

单击#display-nodes ,节点将根据需要显示,但.display不起作用。 如何使此按钮调用该function?

只要动态生成的DOM元素是视图el后代,Backbone视图就可以通过events属性从动态生成的DOM元素接收事件。 相关代码在delegateEvents()中 。 它使用jQuery的delegate()选择器方法。

它不适合你的最可能的原因是新创建的不是视图el的后代。 我对吗?

如果是这种情况,并且您希望将元素保留在视图的el之外,则可以将其从视图的events属性中删除,并委托视图的init方法中的另一个元素。