Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Рекурсия TypeError: undefined (https://javascript.ru/forum/misc/57530-rekursiya-typeerror-undefined.html)

novitocnaforume 07.08.2015 16:55

Рекурсия TypeError: undefined
 
Здравствуйте, нужна помощь.
Без Рекурсии: = в зависимости от выбранного: s1 - s3, с Рекурсией: = undefined. Почему?

function hideMenu(strId){ var tar = strId.target; var op = window.getComputedStyle(tar).opacity;
function fun(obj){ obj.style.opacity -= 0.1; if(op > 0) { alert(obj); } if(op <= 0.1) { obj.style.visibility = ""; }}
// Без Рекурсии: = в зависимости от выбранного s1 - s3.
if(a[0] == tar) { var s1 = document.getElementById("subMenu1"); fun(s1); }
if(a[1] == tar) { var s2 = document.getElementById("subMenu2"); fun(s2); }
if(a[2] == tar) { var s3 = document.getElementById("subMenu3"); fun(s3); } }

function hideMenu(strId){ var tar = strId.target; var op = window.getComputedStyle(tar).opacity;
function fun(obj){ obj.style.opacity -= 0.1; if(op > 0) { setTimeout(fun, 100); } if(op <= 0.1) { obj.style.visibility = ""; } }
// Проблема при Рекурсии: obj = undefined.
if(a[0] == tar) { var s1 = document.getElementById("subMenu1"); fun(s1); }
if(a[1] == tar) { var s2 = document.getElementById("subMenu2"); fun(s2); }
if(a[2] == tar) { var s3 = document.getElementById("subMenu3"); fun(s3); } }


Часовой пояс GMT +3, время: 15:50.