backbone.js: установите фокус на ввод после рендеринга

У меня есть Модель с 1 входом. Также у меня есть Коллекция. Теперь, когда я добавляю модель в коллекцию, я хочу установить фокус на ее ввод. Чтобы быть точным, мне нужно установить фокус на ввод только что созданной модели.

Однако я не могу заставить его работать. Вот моя функция, которая добавляет представление модели к представлению коллекции:

addOne: function(InvoiceItem) {
    var view = new InvoiceItemView({model: InvoiceItem});
    this.$('tr[data-id="'+InvoiceItem.get('after')+'"]').after(view.render().el);
    this.$('tr[data-id="'+InvoiceItem.cid+'"]').css('background', 'green');
    this.$('tr[data-id="'+InvoiceItem.cid+'"] input').focus();
},

Проблема в третьем вызове: this. $ ('Tr [data-id = "' + InvoiceItem.cid + '"] input') .focus (); ничего не делает. И это странно, потому что кажется, что я могу выполнять манипуляции с DOM только над корневым элементом tr , и ни с чем, кроме этого.

Мне кажется, что jQuery не знает, что элемент существует, что странно, потому что когда я делаю предупреждение (this. $ ('Tr [data-id = "' + InvoiceItem.cid + '" ] input '). length) Я получаю 1, что означает, что элемент существует.

Что я здесь делаю не так?

6
задан mu is too short 9 January 2012 в 18:23
поделиться