Пользовательский номер кнопки Tinymce - PullRequest
0 голосов
/ 17 мая 2019

Как я могу создать пользовательские кнопки с помощью JQuery? Мне бы понадобились кнопки "Пункт меню". «n» будет определено в зависимости от выбранных данных перед открытием редактора tinymce.

Мои кнопки:

editor.addButton('addButtons', {
        type: 'menubutton',
        text: 'My button',
        icon: false,
        menu: [
            {
                text: 'Menu item 1',
                onclick: function() {
                    editor.insertContent('&nbsp;<strong>item1</strong>&nbsp;');
                }
            }, {
                text: 'Menu item 2',
                onclick: function() {
                    editor.insertContent('&nbsp;<strong>item2</strong>&nbsp;');
                }
            }, {
                text: 'Menu item 3',
                onclick: function() {
                    editor.insertContent('&nbsp;<strong>item3</strong>&nbsp;');
                }
            }
        ] 
    });

Я могу получить значение "n" из типа ввода, скрытого с помощью JQuery $("#totalButtons").val(). Если totalButtons равно 4, мне нужно 4 кнопки элемента. Имеет ли это смысл? Можно ли это сделать?

Спасибо

Обновленный код:

var n = $('#total').val();
var menuItems = [];

  tinymce.init({
    selector: '#mytextareaTenant',
    content_css: 'https://fonts.googleapis.com/css?family=Aguafina+Script|Alex+Brush|Bilbo|Condiment|Great+Vibes|Herr+Von+Muellerhoff|Kristi|Meddon|Monsieur+La+Doulaise|Norican|Nothing+You+Could+Do|Parisienne|Permanent+Marker|Sacramento|Yellowtail',
    theme: 'modern',
    menubar: false,
    plugins: [
        "print"
    ],           

    setup: function (editor) { 
        editor.on('init', function (e) {
            renderEditorTenant();

            for (var i=1; i<=n; i++){
                var msg = '&nbsp;<strong>#item' + i + '#</strong>&nbsp;';
                var obj = {
                    text: 'Menu item ' + i,
                    onclick: function() {
                        editor.insertContent(msg);
                    }
                }
                menuItems.push(obj);
            }
        });

1 Ответ

1 голос
/ 17 мая 2019

Предположим, у вас есть скрытый ввод, как это:

<input type="hidden" id="foo" name="zyx" value="3" />

Вы можете получить значение ввода и сгенерировать массив с n элементами:

var n = $('#foo').val();
var menuItems = [];

for (var i=0; i<n; i++){
  var msg = '&nbsp;<strong>item' + i + '</strong>&nbsp;';
  var obj = {
    text: 'Menu item ' + i,
    onclick: function() {
        editor.insertContent(msg);
    }
}
  menuItems.push(obj);
}

Теперь,просто передайте этот массив функции, которую вы используете для создания редактора:

editor.addButton('addButtons', {
        type: 'menubutton',
        text: 'My button',
        icon: false,
        menu: menuItems
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...