|
15.02.2010, 14:29
|
Интересующийся
|
|
Регистрация: 13.02.2010
Сообщений: 10
|
|
конструкции взаимодействия функций
Есть вложенная функция, например:
Код:
|
function x()
{
function y()
{alert(10);}
} |
есть потребность ее вызвать (y) из другой части программы, или посредством обработчика события после завершения выполнения функции x. Посоветуйте пожалуйста, как можно решить такую задачу.
|
|
15.02.2010, 14:33
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Зачем вы определяете эту функцию внутри другой функции, если она нужна снаружи?
|
|
15.02.2010, 15:45
|
Интересующийся
|
|
Регистрация: 13.02.2010
Сообщений: 10
|
|
Дело в том, что нужна такая сложная конструкция: при выборе пользователя из select запускается функция, которая производит обработку некоторых данных, открывает формы на странице, при этом полностью не завершает свою работу, а при вводе пользователем данных в открытые формы производит их обработку и при некоторых условиях снова возвращается к началу своего выполнения, изменив значения некоторых параметров.
|
|
15.02.2010, 17:52
|
Аспирант
|
|
Регистрация: 10.04.2008
Сообщений: 83
|
|
Простите, но так и не понятно до сих пор почему бы не вынести функцию y() из x()? Вы ее скрыть хотите? тогда никак.
|
|
15.02.2010, 18:44
|
Интересующийся
|
|
Регистрация: 13.02.2010
Сообщений: 10
|
|
Мне нужно, как я понимаю, чтобы обработчик, например, onkeyup(), мог выполнить определенную часть кода внутри той функции, которая будет иметь циклическое повторение. А каким образом можно еще это сделать, не знаю.
|
|
15.02.2010, 18:52
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Навешивайте обработчик внутри той функции.
|
|
15.02.2010, 19:52
|
Интересующийся
|
|
Регистрация: 13.02.2010
Сообщений: 10
|
|
Можете пояснить, как это сделать? Что-то не врублюсь. Функция отдельно, а события происходят в форме. В моих соображениях это выглядело где-то так:
Код:
|
function x()
{...
function _google()
{
x=document.getElementById('F4_2').value;
var i=0;
var t;
... ... }
... }
<form ID='F4_2'>
<input type='text' onkeydown='_clean()'; onkeyup='_google();_reset()'></form> |
|
|
15.02.2010, 20:05
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Сообщение от neurostep
|
тогда никак.
|
Ну можно получить код функции x, вырезать из него код функции y, проeval'ировать ее... Ну в общем Вы поняли, какой дурацкий это способ.
|
|
17.02.2010, 18:18
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
Можно так:
function x()
{
function y()
{alert(10);}
arguments.callee.y = y;
}
…
x.y();
Но зачем?
|
|
|
|