С JavasScript, скажем, есть innerFunction()
, определенный в пределах outerFunction()
. Если вы попытаетесь вызвать innerFunction()
, за пределами outerFunction()
, будет обнаружена ошибка, так как она не определена в пределах области действия.
Однако, если в outerFunction()
вы назначаете innerFunction()
событию, например событию клика, для некоторого внешнего элемента, например button
, то из этой области действия кнопки можно вызывать innerFunction()
, какими бы они ни были. Итак, почему вы можете сделать этот второй звонок innerFunction()
из разных областей.Область действия Javascript и вызов из onclick
У меня есть рабочий пример: http://jsfiddle.net/rcmoore38/gPrMk/
Первоначальный changeColor()
вызов не работает, но когда changeColor()
назначается button
, она может быть вызвана с помощью кнопки.
Спасибо!
Функции указаны в обработчиках событий, и все они находятся в пределах видимости? – adeneo
Почему «changeColor()» вызывается через кнопку, но не изначально, я понимаю, что при изменении кнопки «changeColor()» она находится в пределах области действия, но кнопка сама по себе не находится в пределах области действия. – user4815162342
В вашем коде строка '$ (" # pid "). Css (" color ", function() {return get_random_color()});' можно изменить на '$ (" # pid "). Css (" color ", get_random_color());' без потери функциональности. – Halcyon