这绝对让我发疯!有人可以解释为什么这个代码不工作,以及如何解决它?它应该将消息“点击”发送到控制台,但它不起作用。控制台消息可以在其他地方使用,但由于某种原因,javascript不捕获click事件。
var resultsListView = new ResultsListView({model: comparablesList});
ResultsListView = Backbone.View.extend({
tagName:'div',
id:'resultView',
template:_.template("<div class='resultsListItemView'></div>"),
initialize:function() {
$(this.el).html('<p class="loadingText">Getting comparables...<p>');
this.model.bind("change", this.render, this);
this.model.bind("reset", this.loading, this);
},
render:function (eventName) {
$(this.el).html(this.template());
_.each(this.model.models, function (comparable) {
this.$('.resultsListItemView').append(new ResultsListItemView({model:comparable}).el);
}, this);
$('#info').html($(this.el));
return this;
}
});
ResultsListItemView = Backbone.View.extend({
initialize: function(){
this.render();
},
template:_.template("<div class='hovr_item'> \
<div class='hovr'> \
<button class='test123'>test</button> \
</div> \
</div> "),
render: function(){
var resultsListItemView = this;
$(this.el).html(this.template(this.model.toJSON()));
$(this.el).find('.test123').click(function() {
console.log('click'); // this does not work after clicking
});
return this;
}
});
作为一个额外的线索,如果我把这个代码放到使其不显示在控制台...所以它似乎是唯一的单击事件:
$(this.el).find('.test123').each(function(index) {
console.log('found');
});
它应该没有记录,你首先必须点击按钮。你能告诉我们什么部分的代码不起作用吗? – Bergi
点击按钮后,它不记录任何东西 - 我做了一些编辑,使代码更具可读性 – Rob
你如何实例化该视图,以及如何将它的'el'添加到DOM? –