rag*_*lka 6 jquery focus setfocus 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();
},
Run Code Online (Sandbox Code Playgroud)
问题是,第三个电话:this.$('tr[data-id="'+InvoiceItem.cid+'"] input').focus();没有做任何事情.这很奇怪,因为我似乎只能在根元素上进行DOM操作tr,除此之外别无其他.
在我看来,jQuery不知道元素存在,这很奇怪,因为当我这样做时,alert(this.$('tr[data-id="'+InvoiceItem.cid+'"] input').length)我得到1,这表明元素存在.
我在这里做错了什么?
jer*_*est 21
使用_.defer解决了我的问题:
var $this = this;
_.defer(function(){
$this.$('tr[data-id="'+InvoiceItem.cid+'"] input').focus();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7888 次 |
| 最近记录: |