如何在骨干中的动态生成按钮上绑定事件?
如何在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
方法中的另一个元素。