【发布时间】:2014-03-22 10:29:17
【问题描述】:
首先:检查this 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 工作,即使在元素排序之后?
我找到了this resource,但我在该主题中所说的代码中找不到任何错误。
【问题讨论】:
-
groups.google.com/forum/?fromgroups#!topic/cleditor/6W36CyPsaVU 我发现这个讨论完全复制了我遇到的问题,但我无法使用它,因为我得到 refresh() 不是函数错误。我用的是 1.4.4 cleditor 版本。
-
我把这个例子放在一起说明它和Knockout没有关系:jsfiddle.net/mbest/rh8c2
标签: jquery-ui knockout.js knockout-sortable cleditor