0

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 で動作させようとしていました。それが機能する場合、私はそれをいくつかの観測可能なものに変更します。何かご意見は?

4

1 に答える 1