Backbone updateOnEnter创建新行

时间:2014-12-18 00:58:31

标签: javascript backbone.js

按[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;
            }
        });

1 个答案:

答案 0 :(得分:0)

您的密切方法有拼写错误。一旦评估该行,它就会抛出错误并停止执行其余的代码。

this.$('.definition').removeattr('contenteditable');

需要

this.$('.definition').removeAttr('contenteditable'); // Capital A in removeAttr.