Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите с объетами и функциями (https://javascript.ru/forum/misc/38441-pomogite-s-obetami-i-funkciyami.html)

VladShestakov999 01.06.2013 20:28

Помогите с объетами и функциями
 
function show (textarea, block) {
bl({'show_block':"block",
block : "none"}); 
}

function bl (obj) { 
for (var block in obj) { document.getElementById(block).style.display=obj[block];
} 
}


Вот две функции. Функция show в себе вызывает функцию bl и передает ей объект. Но вся проблема в том, что функция show передает ключ в виде аргумента, который она принимает. И получается так, что, это ошибку не вызывает, но, как я понял, передается "" и из-за этого код работает некорректно.:help: Что не так и что поправить чтобы работало?

ruslan_mart 02.06.2013 10:37

Вообще странно, что не работает.

function show(textarea, block)
{
   bl({
   show_block: 'block',
   block: 'none'
   });
}

function bl(a)
{
   for(i in a) document.getElementById(i).style.display = a[i];
}

BallsShaped 02.06.2013 12:09

Все правильно. Дело в том, что нет разницы между взятым в кавычки 'show_block' и не взятым block. Кавычки нужны для таких случаев:
({
    "a a a": "без кавычек будет ошибка из-за пробелов"
})

В твоем случае нужно делать так:
function show (textarea, block) {
    var object = { show_block: "block" };
    object[block] = "none";
    bl(object); 
}

Ruslan_xDD, фу-фу-фу! for.. in без var - так пишут только нубы!

VladShestakov999 02.06.2013 19:38

Спасибо, очень помог.:dance:


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