Смотреть эту строку:
btn.addEventListener("click", changeTheButton(btn), false);
Вы на самом деле звоните changeTheButton
прямо здесь, в результате alert
. Вы, вероятно, хотите зарегистрировать его как обработчик событий, таким образом, откладывая предупреждение до нажатия кнопки:
btn.addEventListener("click", function() { changeTheButton(btn) }, false);
Вы можете посмотреть результат на jsFiddle .
Еще одна проблема, с которой вы можете столкнуться, заключается в том, что нажатие кнопки вызывает перезагрузку страницы, поскольку по-прежнему вызывается обработчик событий по умолчанию. Вы можете предотвратить это, вызвав .preventDefault()
в экземпляре события:
function changeTheButton(ev, btn) {
alert("Changed the button");
btn.innerHTML = "Please, don't press again!";
ev.preventDefault();
}
function init(){
btn = document.getElementById("button1");
btn.addEventListener("click", function(ev) {
changeTheButton(ev, btn)
}, false);
}
Демо .