gpt4 book ai didi

tinymce 按钮内的 JavaScript 循环

转载 作者:行者123 更新时间:2023-12-02 23:38:10 26 4
gpt4 key购买 nike

我的 JavaScript 循环在tinymce 按钮内无法正常工作。

我设置了一个变量 n,它是我从 html 输入中获取的数组大小。

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

然后,我创建 tinymce 按钮数组:var menuItems = [];

在我的 tinymce 编辑器 init 中,我创建了按钮:

editor.on('init', function (e) {

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

最后一步是将menuItems 添加到tinymce 按钮:

editor.addButton('myButton', {
type: 'menubutton',
text: 'Items',
icon: false,
menu: menuItems
});

按钮显示正确,标签正确。我有按钮:

项目 1项目2第 3 项

但是,无论我单击哪个按钮,编辑器中显示的文本都是 item3。它总是获取最后一个按钮文本。有谁知道为什么会这样吗?

谢谢

最佳答案

使用 let 而不是 var,因为 let 会保持其词法 block 作用域,其中 var 不会:

editor.on('init', function(e) {
for (let i = 1; i <= n; i++) { // <-- use let here
var obj = {
text: 'Item ' + i,
onclick: function() {
var msg = '&nbsp;<strong>#item' + i + '#</strong>&nbsp;';
editor.insertContent(msg);
}
}
menuItems.push(obj);
}
});

这是documentation on let

关于tinymce 按钮内的 JavaScript 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56200956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com