вопрос newbies, я пытаюсь создать массив кнопок, связать событие click и нажимать переменную «editor» на функцию обратного вызова;javaScript привязывает событие к массиву кнопок
buttons = {
save:{
name: "save",
title: "save",
action: function(editor) { alert('Save cliked.'); console.log(editor);}
},
preview:{
name: "preview",
title: "preview",
action: function(editor) { alert("Preview clicked."); console.log(editor);}
},
format:{
name: "format",
title: "format",
action: function(editor) { alert('Format clicked.'); console.log(editor);}
}
};
for (var key in buttons) {
butHash = buttons[key];
var button = panel.appendChild(document.createElement("a"));
button.setAttribute("title", butHash.title);
button.setAttribute("class", "cm-panel-button " + butHash.name);
button.textContent = "";
console.log(button);
editor = "some editor instance"
$(button).on('click', function(){
console.log(butHash.name);
butHash.action(editor);
});
};
Когда я нажимаю на любую из этих кнопок, я всегда вижу последний обратный вызов «Формат щелкнул». Что я делаю неправильно?
Большое спасибо, вы экономите вторую половину своего дня. :-) – greenif
Вы очень приветствуетесь :) Если у вас есть время, ознакомьтесь с прилагаемыми ссылками, так как это определенно стоит удостовериться, что вы понимаете, как работают замыкания в Javascript. –