Javascript 在被调用两次的模板中敲除JS`hasFocus`
我有一个模板,它使用的是Javascript 在被调用两次的模板中敲除JS`hasFocus`,javascript,knockout.js,Javascript,Knockout.js,我有一个模板,它使用的是hasFocus,类似于文档中的示例: 现场试验 身体{ 边缘顶部:1米; } $(函数(){ var VM=函数(){ var模型={}; 型号={ 一:可观察到的(假), 二:可观测(假) }; this.model=模型; }; 应用绑定(新VM()); }); 一个现在还没有得到关注 两个现在还没有得到关注 所有这些都按预期工作,在进入和离开字段时正确更新模型上的焦点状态。但是,如果我再次应用该模板,则该模板似乎可以正常工作,但焦点状态除外。这是不受支持的,还
hasFocus
,类似于文档中的示例:
现场试验
身体{
边缘顶部:1米;
}
$(函数(){
var VM=函数(){
var模型={};
型号={
一:可观察到的(假),
二:可观测(假)
};
this.model=模型;
};
应用绑定(新VM());
});
一个现在还没有得到关注
两个现在还没有得到关注
所有这些都按预期工作,在进入和离开字段时正确更新模型上的焦点状态。但是,如果我再次应用该模板,则该模板似乎可以正常工作,但焦点状态除外。这是不受支持的,还是我实现错误?如何多次使用模板,但仍使用焦点状态?浏览器不能有两个具有焦点的
元素。hasFocus
绑定将尝试为这两个元素提供聚焦状态。您可以通过对focus
和blur
事件使用event
绑定来规避此行为:
data-bind="event: {
focus: function() {
model.one(true)
},
blur: function() {
model.one(false)
}
}"
查看此提琴以了解代码的工作示例:浏览器不能有两个具有焦点的
元素。hasFocus
绑定将尝试为这两个元素提供聚焦状态。您可以通过对focus
和blur
事件使用event
绑定来规避此行为:
data-bind="event: {
focus: function() {
model.one(true)
},
blur: function() {
model.one(false)
}
}"
查看此提琴,了解代码的工作示例:您需要确保模板的每个副本都有自己的viewmodel。
hasFocus
绑定用于表示单个字段的焦点状态。如果将其绑定到多个字段,则结果将是错误的。您需要确保模板的每个副本都有自己的viewmodel。hasFocus
绑定用于表示单个字段的焦点状态。如果将其绑定到多个字段,则结果将是错误的