Каково назначение элементов в скобках функции?
function handleButtonClick(e) {
var textInput = document.getElementById("songTextInput");
var songName = textInput.value;
//alert("Adding " + songName);
if (songName == "") {
alert("Please enter a song");
}
else {
//alert("Adding " + songName);
var li = document.createElement("li");
li.innerHTML = songName;
var ul = document.getElementById("playlist");
ul.appendChild(li);
// for Ready Bake
save(songName);
}
}
В этом коде почему мы помещаем "е" в функцию, которая остается в первой строке. Насколько я вижу, мы не использовали его, кроме как там?
2 ответа
Исходя из названия функции, я предполагаю, что это обработчик кликов, прикрепленный к кнопке на вашей странице. Обычно, когда событие инициируется, браузер передает объект Event в качестве аргумента обработчику события. В вашем коде аргумент e будет содержать этот объект Event. В вашем обработчике событий вы не используете переданный объект Event, поэтому его можно удалить.
Однако иногда вы можете захотеть использовать переданный объект события. Например: вы можете захотеть, чтобы определенное действие выполнялось при нажатии кнопки, а другое действие - при нажатии кнопки при нажатой клавише Ctrl. В этом случае вы должны использовать свойство ctrlKey переданного объекта Event, чтобы определить, какое действие выполнить.
Вы не используете это сейчас, но:
- этот параметр, событие, принимается, даже если вы не объявляете его, если вы предоставляете его в качестве обратного вызова для утилиты привязки события (например,
myElement.onclick=handleButtonClick;
) - Вполне возможно, что ваш обработчик событий должен будет использовать событие в будущем, его можно объявить чище
Вам не нужно это объявлять, но это хорошая практика.