请参阅JSFiddle以获得此问题的工作演示。
在 Firefox(最新版本,24)中,如果我使用 jQuery UI.show("slide", { direction: "right" })
显示 kendoEditor,编辑器不包含我设置的值,并且它不可编辑。.show()
如果我使用jQuery中的普通旧版本,那么一切正常。它在 Chrome 30 和 IE 10 中也可以正常工作。为什么会.show("slide")
在 Firefox 中破坏编辑器,是否有解决此问题的方法?
这个例子的 HTML:
<button id="btn1" type="button">Button 1</button>
<button id="btn2" type="button">Button 2</button>
<div id="div">
<textarea data-role="editor" data-bind="value: TheValue"></textarea>
<button id="hide" type="button">Hide</button>
</div>
这是不起作用的JS代码:
$(document).ready(function () {
var model;
function bindDiv(value) {
model = kendo.observable({ TheValue: value });
kendo.bind($('#div'), model);
$('#div').show("slide", { direction: "right" });
//$('#div').show();
}
$('#div').hide();
$('#btn1').click(function () { bindDiv('hello'); });
$('#btn2').click(function () { bindDiv('goodbye'); });
$('#hide').click(function () {
console.log(model.get('TheValue'));
$('#div').hide("slide", { direction: "right" });
//$('#div').hide();
});
});
单击btn1
应导致编辑器与文本一起显示"hello"
,然后单击“隐藏”应在控制台中显示已编辑的文本。如果你用"slide"
普通的注释版本替换这两行,那么它工作正常(但看起来不那么酷)。
有谁知道为什么这不起作用,或者我能做些什么?
更新:
在动画播放之前,一切正常——编辑器的 iframe 的 body 有正确的内容,并用contenteditable
属性进行了标记。动画完成后,iframe 的主体被擦除干净 - 没有内容,没有属性。我仍在试图弄清楚为什么以及如何处理它。