主干更新输入创建新行

Backbone updateOnEnter creates new line

本文关键字:创建 新行 输入 更新      更新时间:2023-09-26

按[编辑]后(在提交单词/定义之后(,我想使用updateOnEnter方法来保存对定义字段的更改并失去焦点,并且字段变得不可编辑。 相反,当我按 Enter 时,光标会跳到下面的行,字段的大小会增加。

这是代码笔: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;
            }
        });

您的 close 方法有拼写错误。一旦计算了该行,它就会抛出错误并停止执行其余代码。

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

需要

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