Частая ошибка новичков
Обратите внимание - свойству присваивается именно сама функция-обработчик doSomething, а не doSomething():
document.getElementById('button').onclick = doSomething
doSomething() - это результат запуска функции, а так как вызова return в ее коде нет, то этот результат будет undefined.
Сравните это со свойством. Там - наоборот, скобки нужны:
<input type="button" id="mybutton" onclick="doSomething()"/>
Это различие легко объяснить. Дело в том, что при назначении onclick в HTML браузер автоматически создает функцию-обработчик из содержимого кавычек. Получается, что последний пример - это по сути то же самое, что:
document.getElementById('mybutton').onclick = function() {
doSomething() // внутри автосозданной функции
}
|