1

标题可能听起来很奇怪。嗯,是的。

这是我的代码的近似值(对于这个例子,它缺少一些无用的 ajax 调用,并简化了其他一些东西):http: //jsfiddle.net/pKNAz/3/

假设您有一个可拖动项目列表(在这种情况下,只有一个名为“添加所见即所得”的可拖动项目),您可以将其移动到放置区域(在我的示例中为灰色矩形),并附加一个文本区域,然后,删除后,我使用 jwysiwyg 库转换为所见即所得(我无法添加此插件使用的所有图像和 css,但 textarea 基本行为(ctrl+b、ctrl+i、ctrl+u)工作,所以我们可以假设它正在工作)。

它在掉落时效果特别好。然而,它在排序时会破坏 jwysiwyg。拥有两个jwysiwyg后,您可以自己拖动深灰色手柄尝试。你会看到你排序的 jwysiwyg 已经失去了它的 jwysiwyg。您仍然可以通过 search 获得您之前在 textarea 中写入的正确值$('textarea.overflow').val(),但您不能再使用 jwysiwyg 了。

有人知道如何解决这个问题吗?提前致谢

4

2 回答 2

1

好的,我有一个解决方案(抱歉 Jan 删除了你的勾号)。我想知道,如果问题是由于 iframe 区域和排序事件之间的组合,为什么不只是刷新所见即所得?

我创建了一个函数来包装 jwysiwyg 的破坏+构造,如下所示:

function refreshTextareas()
{
    $('textarea.autogrow').wysiwyg('destroy');
    $("textarea.autogrow").wysiwyg({
        autoGrow: true,
        rmUnusedControls: true,
        controls: {
            bold: { visible : true },
            italic: { visible : true },
            insertOrderedList: { visible : true },
            insertUnorderedList: { visible : true },
            removeFormat: { visible : true },
            h1: { visible: true },
            link : { visible: true }
        }
    });
}

然后我在这里调用它:

$( "#sortable" ).sortable({
    stop : function(event, ui){
        refreshTextareas();
    }
});

所以,如果你对这些东西进行分类,你重建它,它就会再次工作,就像那样。

于 2012-06-28T10:59:09.497 回答
0

在删除项目时,包含所见即所得控件的 iframe 将被清空。由于最少代码方案重现了错误,因此它看起来像是 jquery/jwysiwyg 中的错误。

http://jsfiddle.net/6TcM7/2/

报告错误和/或切换所见即所得引擎。

于 2012-06-27T15:56:52.463 回答