[英]Backbone View events not working
我创建了一个简单的主干页面,它从服务器获取一些设置(JSON)并将其插入到表中(每行是一个settingModel
实例)。
现在,我想使用事件来更改模型的属性,即当用户更改模型属性并将其与服务器同步时。
我将以下代码用于模型的视图:
app.settingView = Backbone.View.extend ({ // View for Model
tagName: 'tr',
template: _.template( $('#setting-template').html() ),
events: {
'focus input':'showAlert'
},
render: function () {
var modelData = this.model.toJSON();
var settingTemplate = this.template(modelData);
this.$el.html(settingTemplate);
return this;
},
showAlert: function(){
alert("You Are Editing");
}
});
但不会触发该事件,当我在input
代码中使用内联onfocus="alert()"
时,相同的事件onfocus="alert()"
起作用。
我在这里制造了一个小提琴
那是因为这里:
$('.container').html($(settingsView.render().el).html());
您正在使用View元素的HTML内容。 您应该附加视图的元素本身。
$('.container').append(settingsView.render().el);
这是因为Backbone使用事件委托语法来绑定视图事件处理程序。 由于您要添加View内容的html表示形式,因此添加的元素不是View元素的后代,因此事件不会传播到View的元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.