jquery Summernote在末尾添加下拉列表中的文本

1l5u6lss  于 2022-11-22  发布在  jQuery
关注(0)|答案(1)|浏览(141)

我在summernote中有一个自定义按钮,它有一个项目“一”,“二”,“三”的下拉列表,当我点击例如文本“一”时,文本被添加在开始处,这很好。但当我点击“二”后,文本也被添加在开始处,这产生了这个结果。

twoone

我希望得到以下结果

one
two

在这里你可以摆弄我的代码
https://stackblitz.com/edit/angular-summernote-demo-n7xn2n?file=src%2Fapp%2Fapp.component.ts
否则,下面是插入文本的按钮的代码

function customButtonGenerator(lstQuoteComments, title) {
  return function (context) {
    const ui = ($ as any).summernote.ui;

    var i;
    var listHtml = '';
    for (i = 0; i < lstQuoteComments.length; i++) {
      listHtml += '<li>' + lstQuoteComments[i] + '</li>';
    }

    const button = ui.buttonGroup([
      ui.button({
        className: 'dropdown-toggle',
        contents:
          '<i class="fa fa-comments text-primary"/><span id="summernot-caret" class="caret text-primary"></span>',
        //tooltip: 'Comments', //Not working when howver over it top is not defined
        data: {
          toggle: 'dropdown',
        },
      }),
      ui.dropdown({
        className: 'drop-default summernote-list',
        contents:
          '<div id="container-comentario"><div id="dialog" title="' +
          title +
          '" ><h1 class="header-comentario">' +
          title +
          '</h1><ul id="summernote-list"><ul>' +
          listHtml +
          '</ul></div></div>',
        callback: function ($dropdown) {
          $dropdown.find('li').each(function () {
            $(this).click(function () {
              context.invoke('editor.insertText', $(this).html());
            });
          });
        },
      }),
    ]);
    return button.render();
  };
}

谢谢你的帮助。

wh6knrhe

wh6knrhe1#

你可以尝试在customButtonGenerator函数中替换这一行:

context.invoke('editor.insertText', $(this).html());

具有:

context.invoke('editor.pasteHTML', $(this).html());

context.invoke('editor.pasteHTML', '<div>' + $(this).html() + '</div>');

相关问题