首先:检查这个 fiddle。
我有使用 Knockout 可排序库创建的可排序元素数组。当我最初应用绑定时,cleditor 初始化得很好。
但是,当对可排序元素进行排序时,cleditor 无法重新初始化(我不确定会发生什么,但 cleditor 失败了)。cleditor 在 Firefox 中只显示“true”而不是实际值,在所有其他浏览器中什么都没有。
我试图找出问题出在哪里,是否在自定义绑定、jQuery-UI 或 Knockout 可排序库上?
我没有在控制台中收到任何错误。
ko.bindingHandlers.cleditor = {
init: function(element, valueAccessor, allBindingsAccessor) {
var modelValue = valueAccessor(),
allBindings = allBindingsAccessor();
var $editor = jQuery(element).cleditor({
height: 50,
controls: "bold italic underline | bullets numbering | undo redo"
});
$editor[0].change(function() {
var elementValue = $editor[0].doc.body.innerHTML;
if (ko.isWriteableObservable(modelValue)) {
modelValue(elementValue);
} else {
if (allBindings['_ko_property_writers'] && allBindings['_ko_property_writers'].cleditor) {
allBindings['_ko_property_writers'].cleditor(elementValue);
}
}
});
},
update: function(element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor()) || '',
$editor = jQuery(element).cleditor();
if ($editor[0].doc.body.innerHTML !== value) {
//$editor[0].doc.body.innerHTML = value;
$editor[0].doc.body.innerHTML = value;
$editor[0].focus();
}
}
};
即使在对元素进行排序之后,如何使 cleditor 工作?
我找到了这个资源,但我在该主题中所说的代码中找不到任何错误。