Просто немного измените forEach
:
cells.forEach((cell) => {
cell.addEventListener("click", function(event){
event.target.style.backgroundColor = "black";
});
});
Если ваши ячейки всегда будут внутри элемента, вы можете использовать всплывающее окно событий в своих интересах:
document.getElementById("background").addEventListener("click", function(event) {
if (event.target.className == "grid") {
event.target.style.backgroundColor = "black";
}
});
То, что Вы хотите, является чем-то как Янино. Мы использовали его в течение многих лет. Вы даете его (около стандарта) код, и это дает Вам классы, таким образом, можно использовать их. Это на самом деле имеет довольно много различных режимов и поддерживает 1,5 синтаксического сахара и автоупаковку и такой.
При вызове javac, мало того, что необходимо будет быть готовы к чему-либо, что он делает, необходимо будет затем обработать помещение класса на правильное место или создание дополнительного classloader.
Янино очень легок. Это должно быть точно, что Вы ищете.
Вызов javac программно:
http://www.juixe.com/techknow/index.php/2006/12/12/invoke-javac-at-runtime/
com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main(); String[] options = new String[] { "-classpath", classpath, "-d", outputDir, filename }; javac.compile(options);
Все серверы приложений делают это для JSP навсегда, так очевидно, это возможно. Исходный код кота контроля, возможно?