循环始终返回数组的最后一个值

时间:2014-05-20 22:10:12

标签: javascript jquery tinymce tinymce-4

目前在TinyMCE 4中,我正在尝试将表情符号添加为工具栏中的按钮。

下面的代码工作正常,我可以看到工具栏中的所有按钮:

var array = ['applause', 'bumping', 'cool', 'cry', 'grin', 'happy', 'laughing', 'notalking', 'sad', 'wink'];

    for (var i in array) {

        editor.addButton(array[i], {
            title: '',
            icon: true,
            image: 'img/smileys/'+ array[i] +'.gif',
            onclick: function() {
                editor.execCommand('mceInsertContent', false, '<img src="img/smileys/'+ array[i] +'.gif">');
            }
        });

    }

但是,array[i]行中的editor.execCommand始终将其值返回为wink(数组的最后一个值)。同时,代码中array[i]的其他两个实例运行正常。

1 个答案:

答案 0 :(得分:1)

关闭i

for (var i in array) {
  new function(){
    var iCopy = i;
    editor.addButton(array[iCopy ], {
        title: '',
        icon: true,
        image: 'img/smileys/'+ array[iCopy ] +'.gif',
        onclick: function() {
            editor.execCommand('mceInsertContent', false, '<img src="img/smileys/'+ array[iCopy ] +'.gif">');
        }
    });
  }
}