У меня есть модель с 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 не знает, что элемент существует, что странно, потому что когда я делаю alert(this.$('tr[data-id="'+InvoiceItem.cid+'"] input').length)
, я получаю 1, что указывает на то, что элемент существует.
Что я здесь не так делаю?