在我当前的项目中,我在一些TEXTAREA's
上实现了jHtmlArea WYSIWYG插件,这些插件是可拖动和可排序的行。唯一的问题是,一旦开始拖动它们,它们就会丢失插件屏蔽关联IFRAME
的{{1}}中的所有数据。 jQuery的TEXTAREA
功能正在使用,但它本身并不会随身携带所有数据,甚至将其设置为.clone
或.clone(true)
也不会保留拖拽数据。例如:
有没有办法保留内容?
答案 0 :(得分:1)
我想我终于明白了:
在我意识到拖动时似乎消失的内容没有完全消失但存储在某个地方(我不知道的地方)并且在页面重新加载后会出现在富文本编辑器的IFRAME中之后,答案慢慢来了。 / refresh(在jsfiddle中无法轻易说明的内容,重新加载页面从头开始)。一旦我终于意识到,那么我使用jHtmlArea插件的“dispose”功能(我认为它们应该可以命名为“destroy”),然后立即重新初始化插件,然后数据将重新出现。由于我无法弄清楚如何识别DOM中拖动克隆的行(或至少如何创建它的jQuery对象),我做了处理并重新初始化所有TEXTAREA然后找到当我使用.each()方法定位每一个时,它效果最好,或者有时其中一些不会被处理掉然后重新初始化(参见前面提到的http://jsfiddle.net/5QL7W/24/示例)。
相关代码:
var fixHelperModified = function (e, tr) {
var $originals = tr.children();
var $helper = tr.clone();
$helper.children().each(function (index) {
$(this).width($originals.eq(index).width())
});
return $helper;
},
updateIndex = function (e, ui) {
$('td.index', ui.item.parent()).each(function (i) {
$(this).html(i + 1);
});
$('#sort TBODY TEXTAREA').each(function () {
$(this).htmlarea('dispose');
$(this).htmlarea({
toolbar: ["bold"]
});
});
};
$("#sort TBODY").sortable({
helper: fixHelperModified,
stop: updateIndex
});