我在文本框上有hasfocus databind,在输入一些文本然后点击另一个文本框后,焦点不会改变,直到你再次点击。无论您点击何处,似乎第一次点击都不会改变焦点。
这是一个演示此http://jsfiddle.net/9LuJy/1/的jsfiddle。
以下是导致此问题的视图模型。
var viewmodel = function() {
var self = this;
self.fields = ko.observableArray();
self.fields.push(new Field());
}
var Field = function() {
var self = this;
self.isFocus = ko.observable(false);
self.textValue = ko.observable();
}
这是html
<div data-bind="foreach: fields">
<input type="text" data-bind="hasfocus: isFocus, value: textValue" />
</div>
<input type="text" />
我希望在输入后更新observable可能会这样做,所以可能需要某种延迟?
答案 0 :(得分:1)
在Firefox,Internet Explorer和Chrome中,我只注意到了Chrome中的问题。考虑到小提琴(2.2.1
)中使用的Knockout版本,我发现this commentary与所描述的行为有关。升级版本将解决问题。
替代解决方案
如果升级版本不是一个可行的选择,可以考虑添加valueUpdate: 'afterkeydown'
。