2012-04-05 50 views
6

在页面加载我设置一个变量jQuery的变量

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

当我尝试指的是可变的内部功能,虽然,这是行不通的。

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

这是为什么?我怎样才能解决它?

(菜鸟在这里)

+0

使'inv_count'成为一个全局变量;它在一个函数里面。将它写在'ready'函数 – mshsayem 2012-04-05 17:15:15

回答

11

如果声明函数内部变量,变量名称将无法使用该功能的范围之内。移动声明之外的功能:

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

之外,因为它不是全局可访问的变量。 – 2012-04-05 17:18:54

12

你的scope一个问题,我建议你阅读一些关于它,因为你可以提高你的JavaScript一吨,但你可以在两种常规方法解决这个问题:

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); 
} 

$(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; 
}); 

此外,我建议你阅读clousures,如果你不知道他们是如何工作的。

+2

非常好的猫! – MCSI 2012-07-24 14:01:50