gpt4 book ai didi

javascript - 挖空内容可编辑自定义绑定(bind)

转载 作者:数据小太阳 更新时间:2023-10-29 04:57:42 24 4
gpt4 key购买 nike

为什么在这个例子中 http://jsfiddle.net/JksKx/8/当我写文本时 div 丢失光标?如何解决此类行为?

最佳答案

keyup 事件正在触发并写入您的 View 模型,然后触发自定义绑定(bind)的更新功能。这是将 innerHTML 写回元素,这会导致您失去焦点。

如果 element.innerHTML 已经与您要设置的值相同,一个简单的解决方法是检查更新函数。

http://jsfiddle.net/rniemeyer/JksKx/9/

ko.bindingHandlers.htmlValue = {
init: function(element, valueAccessor, allBindingsAccessor) {
ko.utils.registerEventHandler(element, "keydown", function() {
var modelValue = valueAccessor();
var elementValue = element.innerHTML;
if (ko.isWriteableObservable(modelValue)) {
modelValue(elementValue);
}
else { //handle non-observable one-way binding
var allBindings = allBindingsAccessor();
if (allBindings['_ko_property_writers'] && allBindings['_ko_property_writers'].htmlValue) allBindings['_ko_property_writers'].htmlValue(elementValue);
}
}
)
},
update: function(element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor()) || "";
if (element.innerHTML !== value) {
element.innerHTML = value;
}
}
};

关于javascript - 挖空内容可编辑自定义绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7904522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com