TinyMCE自定义工具栏menuItem单击触发所有父项的单击事件

时间:2015-07-20 09:29:40

标签: javascript tinymce

我正在向我的tinyMCE添加一个自定义工具栏按钮,如下所示

tinyMCE.init({
mode: "specific_textareas", 
editor_selector: "mceEditor",
width: 600,
toolbar_items_size: "small",
plugins: ["advlist autolink lists link image charmap print preview anchor","searchreplace visualblocks code fullscreen","insertdatetime media table contextmenu paste "],
toolbar: "undo redo | styleselect | bullist numlist outdent indent | link image | stats ",
setup: function (editor) {
editor.addButton('stats',{
    text: 'Stats',
    type: 'menubutton',
    icon: false,
    menu: [
    {
    text: 'item1',
    selectable: 'false',
    classes: 'noselect',
    onclick: function () { editor.execCommand('mceInsertContent', false, '{rootValue}');},
    menu: [
    {
    text: 'item1.1',
    selectable: 'false',
    classes: 'noselect',
    onclick: function () { editor.execCommand('mceInsertContent', false, '{midValue}');},
    menu: [
    {
    text: 'item1.1.1',
    selectable: 'false',
    classes: 'noselect',
    onclick: function () { editor.execCommand('mceInsertContent', false, '{leafValue}');},
    },
    ]
    },
    ]
    },
    ]
    });}});

所以我的按钮是一个有子菜单的菜单,那些子菜单可以有子菜单等等,所以我有多个嵌套的子菜单,每个子菜单都有一个onclick函数,可以在编辑器中插入一些文本。我遇到的问题是,当我单击最里面的按钮时,它会从根目录触发树路径上的所有onclick事件。因此,如果我单击应插入{leafValue}的按钮,则会插入此

{leafValue}{midValue}{rootValue}

显然我想在这里只插入leafValue。这是一个已知的tinyMCE问题吗?任何人都知道如何解决它?

1 个答案:

答案 0 :(得分:1)

您可以使用preventDefault()吗?

onclick:function (evt) { 
    editor.execCommand('mceInsertContent', false, '{leafValue}');
    evt.preventDefault();
}

MDN:http://api.jquery.com/event.preventdefault/#event-preventDefault