0

我将 jQuery Sortable 与 jHTMLArea 一起使用。我基本上有可排序的 DIV,并且 DIV 是可排序的。但是,当您将 DIV 放在任何位置时,jHTMLArea 的内容将变为空并且 jHTMLArea 将变为禁用状态。iFrame 和 textarea 都被禁用。你不能在里面写任何东西。

我不确定是什么问题,所以我想知道这是否与库本身有关。

我正在使用的代码是这样的:

// Enable Sortables
$("div.nnUtil").sortable({
    cancel: ".nnSettings",
    connectWith: 'div.nnUtil',
    distance: 5,
    forcePlaceholderSize: true,
    items: '> div.nnItems',
    placeholder: 'ui-state-highlight',
    revert: 250
});
4

1 回答 1

3

我找到了解决方案。

基本上,当您对列表进行排序时,div 的内容会被隐藏。这会阻止 htmlarea 内容。jHTMLArea 论坛中记录了许多关于此的问题。

我所做的是当你删除我重新呈现 HTMLArea 的 div 时。

这是工作演示

$('textarea').htmlarea();

var fixHelperModified = function (e, tr) {
    var $originals = tr.children();
    var $helper = tr.clone(true, true);
    $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);
    });
    ui.item.find('textarea').htmlarea('dispose');
    ui.item.find('textarea').htmlarea();
};

$("#sort TBODY").sortable({
    helper: fixHelperModified,
    stop: updateIndex
}).disableSelection();

示例问题

http://jhtmlarea.codeplex.com/workitem/16028

http://jhtmlarea.codeplex.com/workitem/10907

于 2013-07-16T04:16:45.703 回答