单击按钮后,事件如何触发?
var test1 = new Test({ Name: "Test 1", id: 1 });
var test2 = new Test({ Name: "Test 2", id: 2 });
var test3 = new Test({ Name: "Test 3", id: 3 });
var tests = new TestCollection([test1, test2, test3]);
TestView = Backbone.View.extend({
initialize: function () {
this.render();
},
events:
{
"click .btn": "clickbtn"
},
render: function () {
$("#tests_template").tmpl(tests.toJSON()).appendTo("#tests_list");
this.delegateEvents();
return this;
},
clickbtn: function () {
alert('test');
}
});
var testView = new TestView();
<script id="tests_template" type="text/x-jquery-tmpl">
<li>
<b>${Name}</b><input type="button" id="btn" value="click" class="btn"/>
</li>
</script>
<ul id="tests_list">
</ul>
答案 0 :(得分:3)
events
声明适用于您视图的el
元素。现在,您的代码直接将html输出附加到视图el
之外的其他内容。
这将解决它:
TestView = Backbone.View.extend({
initialize: function () {
this.el = $("#tests_list");
this.render();
},
events:
{
"click .btn": "clickbtn"
},
render: function () {
var html = $("#tests_template").tmpl(tests.toJSON());
$(this.el).append(html)
return this;
},
clickbtn: function () {
alert('test');
}
});