Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Портал .::2BakSa.WS::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Веб - Программирование > Java Script

Уважаемые пользователи nowa.cc и 2baksa.ws. У нас сложилось тяжёлое финансовое положение. Мы работаем для вас вот уже более 15 лет и сейчас вынуждены просить о помощи. Окажите посильную поддержку проектам. Мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: 826074280762 Webmoney WME: 804621616710
PayPal PayPal_Email E-mail для связи по вопросу помощи
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!
Ответ
 
Опции темы Опции просмотра Language
Старый 24.04.2007, 13:44   #1
Постоялец
 
Пол:Мужской
Регистрация: 19.03.2007
Сообщений: 293
Репутация: 170
По умолчанию javascript рекурсивный вызов функции

есть необходимость обработать дерево, но столкнулся с проблемой.

Код:
+папка0
|-папка1
|-папка2
|+папка3
||-папка4
||-папка5
|\-папка6
\-папка7
при передаче управления в рекурсию обрабатывается только самая верхняя ветвь, предыдущие же вызовы функции перкращают обработку. То есть начиная обработку с папка0 должны попасть под раздачу все папки, так как они являются ее подпапками, но на деле же под раздачу попадает только первая ветвь:
Код:
+папка0
|-папка1
|-папка2
|+папка3
||-папка4
||-папка5
|\-папка6
а папка7 остается не у дел, так как при последовательной обработке с папки 0 на папке 3 рекурсия передалась по ветке папки4 и более к ветке папка2-папка3-папка7 не вернулась, то есть функция завершается



Есть какие-то методы решения? Можно ли как-то вызвать рекурсивную функцию параллельно?
BaBL вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: театр сегодня билетыбукеты необычные для женщин краснодарфотопринтер epson l805компьютерные столы купитьспектакль малыш и карлсон


Старый 24.04.2007, 14:00   #2
OlegRom
Пользователь
 
Аватар для OlegRom
 
Пол:Мужской
Регистрация: 08.03.2007
Адрес: UAE, Dubai
Сообщений: 99
Репутация: 32
По умолчанию Re: javascript рекурсивный вызов функции

код в студию
__________________
Имя величайшему из всех изобретателей: Случайность.
OlegRom вне форума
 
Ответить с цитированием Вверх
Старый 24.04.2007, 14:20   #3
BaBL
Постоялец
 
Пол:Мужской
Регистрация: 19.03.2007
Сообщений: 293
Репутация: 170
По умолчанию Re: javascript рекурсивный вызов функции

Цитата:
Сообщение от OlegRom Посмотреть сообщение
код в студию

К примеру так:

Код:
function mark_check(parent,nums) {
if(nums>0){
var act = parent.checked;
var parentname = parent.name;
if (document.all || document.getElementById){
	for (i=1;i<=nums;i++){
		if(i<10){
			var currentitem = document.getElementById("check_"+parentname+"0"+i);
			var subnums = document.getElementById("subn_"+parentname+"0"+i).value;
		}
		else{
			var currentitem = document.getElementById("check_"+parentname+i);
			var subnums = document.getElementById("subn_"+parentname+i).value;
		}
		currentitem.checked = act;
		if(subnums>0){
			mark_check(currentitem,subnums);
		}
	}
}
}
return false;
}
если закомментировать mark_check - обрабатывается вся ветвь, но без рекурси дальше, если его оставить - то только одна ветвь. Пробовал вызывать другие функции - тоже прекращает выполняться. То есть это даже не в рекурсии дело, а в том, что при вызове любой функции из данной, эта останавливается. Переменные все приватные, хз почему. Пробовал возвращать значение, все равно.

Добавлено через 19 минут
Отбой.. решил траблу.

если не объявлять предварительно переменную цикла:
var i = 0;
что делает ее приватной для функции, она автоматически становится публичной. Вот ведь гадость.

Всем спасибо.

Последний раз редактировалось BaBL; 24.04.2007 в 14:39.. Причина: Добавлено сообщение
BaBL вне форума
 
Ответить с цитированием Вверх
Старый 11.10.2007, 11:27   #4
doroshenkoes
Неактивный пользователь
 
Регистрация: 11.10.2007
Сообщений: 5
Репутация: 0
Smile Ответ: javascript рекурсивный вызов функции

Тебе тоже спасибо, BaBL! Если б не твоя тема, сидел бы я еще день-другой над таким же косяком
doroshenkoes вне форума
 
Ответить с цитированием Вверх
Ответ

Опции темы
Опции просмотра

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функции из dll Dr Evil Delphi 17 13.10.2010 00:50
Вызов неэкспортированной функции в DLL maxrfon Delphi 0 24.07.2009 23:15
Функции работы со строками BFTFenix Visual C++ / С/C++ 13 14.05.2008 16:58
Функции по работе с HDD Indian .NET 1 05.02.2008 18:20

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 14:46. Часовой пояс GMT +3.


Copyright ©2004 - 2024 2BakSa.WS

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.15456 секунды с 13 запросами