Показать сообщение отдельно
  #20 (permalink)  
Старый 16.09.2011, 03:07
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

http://javascript.ru/tutorial/events/intro

Цитата:

Частая ошибка новичков
Обратите внимание - свойству присваивается именно сама функция-обработчик 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() // внутри автосозданной функции
}
нужно вместо window.onload = podcut('cut4'); писать window.onload = function() { podcut('cut4'); };
Ответить с цитированием