我有一个全局变量,通过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
}
答案 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
}