jquery variable in function

15,351

Solution 1

If you declare a variable inside a function, the variable name will be inaccessible outside the scope of that function. Move the declaration outside the function:

var inv_count;
$(document).ready(function() {
    inv_count = 3;
});

Solution 2

You have a problem of scope, I suggest you read a little about it because you can improve your javascript a ton, but you could solve it in two general ways:

var inv_count; //you declare your variable in a global scope, it's not very good practice
$(document).ready(function() {
    inv_count = 3;
});
function blah(a,b) {
   alert (inv_count);
}

or

$(document).ready(function() {
    var inv_count = 3;

    function blah(a,b) {
      alert (inv_count);
    }
    //you declare everything inside the scope of jQuery, if you want to acess blah outside use:
   //window.blah = blah;
});

Also I recommend you read about clousures if you don't know how they work.

Share:
15,351
user1022585
Author by

user1022585

Updated on June 09, 2022

Comments

  • user1022585
    user1022585 almost 2 years

    On pageload I set a variable

    $(document).ready(function() {
      var inv_count = 3;
      });
    

    When I try to refer to that variable inside functions though, it doesn't work.

    function blah(a,b) {
       alert (inv_count);
       }
    

    Why is this? And how can I get around it?

    (rookie here)

  • Kyle Yeo
    Kyle Yeo about 12 years
    because its not a globally accessible variable.