Nat*_*May 2 javascript jquery scope object
我正在实现以下功能.页面的大部分内容在我的entryPage.php文件中创建一次."Stage"表是通过对stageArea.php的AJAX调用创建的.我的问题是我的数据对象是在我的其他函数之外无法访问的.$(document).ready(function() {...}
$(document).ready(function() {...}
entryPage.php
...HTML...
<script>
$(document).ready(function() {
var dataObject = new DataEntryObj(); // create the data object
$.post("../stageArea.php", {array : dataObject.dataArray}, function(data){
$('#stageArea').html(data);
});
}
var DataEntryObj = function(){
this.dataArray = [[0,0,0,0,0,0,0,3,0]];
....
}
function updateData(value, row, index){
alert("update:" + row + " " + index + " " + value); //values come in OK
alert(dataObject.dataArray[row][index]); // but the data Object isn't here
dataObject.dataArray[row][index] = value; // so this cannot be assigned
$.post("../stageArea.php", {array : dataObject.dataArray}, function(data){
$('#stageArea').html(data);
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
将对象保持在与其他函数相同的范围内有什么好的解决方案?
只需声明var
外部,$(document).ready
然后分配它的值而不使用var
var dataObject ;
$(document).ready(function() {
dataObject = new DataEntryObj(); // create the data object
......
});
Run Code Online (Sandbox Code Playgroud)
现在这相当于 window.dataObject