Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Область видимости (https://javascript.ru/forum/events/17426-oblast-vidimosti.html)

Moonlight 18.05.2011 22:41

Область видимости
 
Подскажите можно ли и если да то как задать в функции переменную, которую можно будет использовать вне этой функции.

$(function(){
    $('.but').click(function(){
          x = $(this).val();
return x;
    })
    $('body').append(x);
});


Вот как я не пытался, не смог вытащить переменную x за пределы анонимной функции. Знает кто-нибудь?

walik 18.05.2011 22:48

function getText() {
	text = 'Hello World';
}
getText();
alert(text);

walik 18.05.2011 22:50

В вашем коде ошибка в то что
$('body').append(x);

выполняется при загрузке документа. А переменная x появляется после клика элемента. То есть переменно еще не существует а вы уже ее используете.

Moonlight 18.05.2011 23:11

Вот тот пример над которым я мучаюсь.
есть кнопка:
<button class="but" value="1">1</button>

Есть функция клика по ней:
$(function(){
    $('.but').click(function(){
        result = $(this).val();
        return result;
   });
А вот тут мне нужно достать эту переменную со значение кнопки.
});


В коде всё написано. Как мне вытащить из функции эту переменную result?

walik 18.05.2011 23:20

Переменная появиться только после КЛИКА.
А тот код в котором вы хотите ее (переменную) использовать выполняеться сразу при загрузке документа (до клика) когда переменной еще не существует.

walik 18.05.2011 23:21

Посмотрите на мой пример, там сначала вызывается функция в которой создается переменная, а потом только эта переменная используется, у вас в коде же наоборот. Ищите другое решение вашей задачи.

Moonlight 18.05.2011 23:25

Спасибо.


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