代码之家  ›  专栏  ›  技术社区  ›  Zeeshan Adil

无法在第二个或第三个删除的动态元素上启动ck editor-ckeditor

  •  1
  • Zeeshan Adil  · 技术社区  · 7 年前

    我在网上查了所有的解决方案,但没办法解决。

    我正在研究一种cms,在这里我将html小部件拖放到dom中,我需要对动态生成的元素应用ck编辑器,但是我在这里面临一些问题。

    下面是在删除小部件时激发的代码:

      //Triggered when an accepted draggable is dropped on the droppable
                drop: function (event, ui) {
    
    //dropable Template here is complete HTML content
     var DropableTemplate = ui.draggable.attr("data-template");
    
    //appending to event target
    $(event.target).after(DropableTemplate);
    
    // getting the editable [p] content from it
      var elementforCkEditor = $(event.target).find('p');
    
    //I found this solution online 
    
                    var i;
                    for (i = 0; i < elementforCkEditor.length; i++) {
                        CKEDITOR.inline(elementforCkEditor .get(i))
                        delete CKEDITOR.instances['editor1'];
                    }
    

    它第一次工作得很好,但是当我删除第二个动态元素时,它不会在上面触发ck编辑器。

    它显示的编辑器与实际元素稍有不同,在本例中,是一个段落

    这是解决这个特殊情况的正确方法吗?如果是的话,我该怎么解决?

    我试过。替换,。可编辑,但它们不工作。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Charlie    7 年前
    elementforCkEditor.get(0)
    

    在上面的语句中,您将获得jquery选择的第一个元素。

    没什么好关注的

    ckeditor希望可编辑元素包含属性 contenteditable=true

    此外,允许通过ckeditor编辑的元素数量。

    请看 here 为了那些。

    This 是一个很好的来源,你可以了解你的案件尤其是。

    注意,您也可以将元素id传递给ckeditor。

    CKEDITOR.inline( 'my-id', {
        startupFocus: true
    } );