Backbone.js / Handlebars按钮单击事件未触发

时间:2014-03-26 15:42:14

标签: backbone.js backbone-views handlebars.js

我有一个Handlerbar,它有一个按钮,如下所示:

<button id="addLine" type="image" class="AddButtonClass" title="Add New Line" onclick = "addNewBlock('{{blockId}}');"></button>

然后我使用此模板动态创建对象,如下所示:

    var template = window.app.getTemplate('myHandlebar');       
    var budgetBlock = $(template({blockId: guid}));  
    $("#BudgetTable tbody").append(budgetBlock);

然后我有这样的功能:

addNewBlock: function(getId){
    alert(getId);
},

问题是Handlebar事件上的按钮永远不会触发。相反,我收到错误“Uncaught ReferenceError:addNewBlock is not defined”

为什么我不能将onclick事件分配给把手中的按钮?有没有办法在创建模板时动态地向按钮添加事件?

感谢

1 个答案:

答案 0 :(得分:0)

试试这个:

<button id="addLine" type="image" class="AddButtonClass" title="Add New Line" data-id="{{blockId}}"></button>

并在您的主干中,例如在您的初始化函数中:

$('#addLine').click(function(){
    alert($(this).data('id'));
});

或者你可以在骨干

中创建一个事件
events: {
 'click #addLine' : 'addNewBlock'

},
addNewBlock: function(e){
     console.log( $(e.currentTarget).data("id"));
}