javascript全局变量在使用后变空

时间:2014-08-31 08:20:53

标签: javascript

我有一个全局变量,通过document.ready()在页面加载时赋值,但是当我从事件方法访问它时,它变为空。

因此,为了检查变量是否被赋值,我在赋值后立即添加了一个警告(variable.length),显示了期望值,但是当我在事件触发方法中执行相同操作时,值始终为0

这就是我所做的

的document.ready()

    var selectedCategory = new Array();
    $(document).ready(function () {
        selectedCategory = $("#<%=hfdGenreList.ClientID%>").val().split(',');
        alert(selectedCategory.length);
    });

强文

    function moveToTextbox() {
        alert(selectedCategory.length);
      // some code
    }

1 个答案:

答案 0 :(得分:2)

删除“var”语法以创建全局var,或者明确关于从window objetc创建一个全局var,所以:

备选方案1(删除'var'):

selectedCategory = new Array();
$(document).ready(function () {
    selectedCategory = $("#<%=hfdGenreList.ClientID%>").val().split(',');
    alert(selectedCategory.length);
});

备选方案2(来自窗口对象的显式全局变量):

var window.selectedCategory = new Array();
$(document).ready(function () {
    selectedCategory = $("#<%=hfdGenreList.ClientID%>").val().split(',');
    alert(selectedCategory.length);
});

function moveToTextbox() {
        alert(window.selectedCategory.length);
      // some code
    }