按[edit]后(在提交了一个单词/定义之后)我希望我的updateOnEnter方法将更改保存到定义字段并失去焦点,并且字段变为不可编辑。相反,当我按Enter时,光标跳到下面的行,字段的大小增加。
这是CodePen: http://codepen.io/anon/pen/zxBZBe
var EntryView = Backbone.View.extend({
model: new Entry(),
tagName:'div',
events:{
'click .edit': 'edit',
'click .delete': 'delete',
'keypress .definition': 'updateOnEnter'
},
delete: function(ev){
ev.preventDefault;
dictionary.remove(this.model);
},
edit: function(ev){
ev.preventDefault;
this.$('.definition').attr('contenteditable', true).focus();
// this.$el.addClass('editing');
},
close: function(){
var definition = this.$('.definition').text();
this.$('.definition').removeattr('contenteditable');
this.model.set('definition', definition);
},
updateOnEnter: function(ev){
if(ev.which == 13){
this.close();
}
},
initialize: function(){
this.template = _.template($("#dictionary_template").html());
},
render: function(){
this.$el.html(this.template(this.model.toJSON()));
return this;
}
});
答案 0 :(得分:0)
您的密切方法有拼写错误。一旦评估该行,它就会抛出错误并停止执行其余的代码。
this.$('.definition').removeattr('contenteditable');
需要
this.$('.definition').removeAttr('contenteditable'); // Capital A in removeAttr.