2013-10-07 7 views
3

Вот мой простой сценарий. У меня есть переменная, определенная внутри функции ready(), которая присваивает первое значение.Изменение значения глобальной переменной внутри функции

У меня также есть функция снаружи ready(). Я хочу использовать измененную переменную внутри моей новой функции.

Вот мой код JavaScript:

var myFunction = function() { 
    // I wanna change Vp value here and wanna 
    // use this function with the new value   
    Vp = "new value"; 

    myFunction2(); 
}; 

$(document).ready(function() { 

    var Vp = "first value asign"; 
    $('#btnAddCustomer').click(myFunction); 

    var myFunction2 = function() { 
     // I will use Vp variable here with new value 
    }; 
}); 
+0

[. JSFiddled] (http://jsfiddle.net/XGGvv/2) –

+0

Почему вы не двигаться 'MYFUNCTION()' в том же 'готовы 'scope? –

+0

$ ('# btnAddCustomer'). Click (myFunction); здесь называется. Когда клинт нажимает кнопку, он запускает – sakir

ответ

8

Выбросьте var заявление. Он присвоил значение новой локальной переменной вместо глобальной переменной.

Здесь:

var Vp = "first assigned value" 
var myFunction2; 

var myFunction = function() { 
    // I wanna change Vp value here and wanna use this function with the new value   

    Vp = "new value" 
    myFunction2(); 

    }; 

$(document).ready(function() { 

    Vp = "first value asign"; 

    $('#btnAddCustomer').click(myFunction); 

    myFunction2 = function() { 

    alert(Vp) 

    }; 

}); 

Fiddle: http://jsfiddle.net/XGGvv/10/

ТЕПЕРЬ, РАБОТАЕТ.

Хорошее чтение на JS переменных областей: http://coding.smashingmagazine.com/2009/08/01/what-you-need-to-know-about-javascript-scope/

+3

Вы все равно должны объявлять переменную, но в глобальном масштабе. – JJJ

+0

Жаль, что он не был завершен. Проверь это сейчас. – aIKid

+0

Непременно это работает ваш солитон, все равно получите значение Vp = "first value asign" внутри функции ready, но нужно новое значение – sakir

Смежные вопросы