hasFocus がこのように機能するようにカスタムバインダーを追加しようとしています
ko.bindingHandlers.hasfocus = {
//update the control when the view model changes
update: function (element, valueAccessor) {
ko.unwrap(valueAccessor());
alert('update');
setTimeout(function () {
alert(3);
if (value
&& element.offsetWidth && element.offsetHeight
&& document.activeElement && document.activeElement != element) {
element.focus();
ko.utils.triggerEvent(element, "focusin"); // For IE, which doesn't reliably fire "focus" or "blur" events synchronously
}
});
}
};
しかし、それがこの機能に入ることは決してありません。私はこの例に従っています
http://jsfiddle.net/mbest/tAGmp/
問題は、私の入力フィールドが最初に表示されないことです。どこかをクリックすると、表示されます。入力欄はこんな感じ
<input type="text" data-bind="hasFocus: true" />
ハードコード値 true で動作させようとしていました。それが機能する場合、私はそれをいくつかの観測可能なものに変更します。何かご意見は?