TinyMce4 dom添加可拖动元素(jquery)

时间:2016-07-11 05:08:03

标签: javascript jquery tinymce orchardcms tinymce-4

您好我正在使用TineMce4。

我构建了一个新的插件,将新元素(p)添加到我的文本编辑器中。

现在我需要制作我添加的元素 - > draggable / drag and grop with-> (jquery的)。

我试图在这个元素中添加draggable类

这不起作用。

我认为我需要使用jquery MyElemet.draggable();关于这个元素,但我不知道如何。

有没有人知道如何制作我添加到文本editior draggable的元素?

我的代码:

 tinymce.create('tinymce.plugins.AddContent', {

    init : function(ed, url) {
        ed.addCommand('mceAddContent', function() {
 tinyMCE.activeEditor.dom.add(tinyMCE.activeEditor.getBody(), 'p', { 'class': 'draggableTemplate' }, 'Some Text ...');
 // tinyMCE.activeEditor.dom.add(tinyMCE.activeEditor.getBody(), 'p', { 'class': 'draggableTemplate' }, 'Some Text ...').draggable();//not working

        });

        // Register example button
        ed.addButton('addcontent', {
            title : 'Add content at the end',
            cmd : 'mceAddContent',
            image: url + '/img/addcontent.png',
            onclick: function () {

               //var editor = tinymce.activeEditor;
               //var ed_body = $(editor.getBody());
               //ed_body.find('p').draggable();//not working
            }
        });
    }
    });

    // Register plugin with a short name
    tinymce.PluginManager.add('addcontent', tinymce.plugins.AddContent);

1 个答案:

答案 0 :(得分:1)

我找到了这个解决方案,你需要使用$(editor.getBody())按类查找,然后使其可拖动。

以下是addCommand的更新代码:

  ed.addCommand('mceAddContent', function () {
 tinyMCE.activeEditor.dom.add(tinyMCE.activeEditor.getBody(), 'p', {  'class': 'draggableTemplate' }, 'Some Text ...');
            var editor = tinymce.activeEditor; 
            var ed_body = $(editor.getBody());
            ed_body.find('.draggableTemplate').draggable();

        }),

完整代码:

tinymce.create('tinymce.plugins.AddContent', {

    init: function (ed, url) {
        ed.addCommand('mceAddContent', function () {
            var el = tinyMCE.activeEditor.dom.add(tinyMCE.activeEditor.getBody(), 'p', {  'class': 'draggableTemplate' }, 'Some Text ...');
            var editor = tinymce.activeEditor; 
            var ed_body = $(editor.getBody());
            ed_body.find('.draggableTemplate').draggable();

        }),

        // Register example button
        ed.addButton('addcontent', {
            title: 'Add content at the end',
            cmd: 'mceAddContent',
            image: url + '/img/addcontent.png',
            onclick: function () {

            }

        });

    }

});

// Register plugin with a short name
tinymce.PluginManager.add('addcontent', tinymce.plugins.AddContent);