我正在实现以下功能。页面的大部分是在我的entryPage.php文件中创建的。 “舞台”表是通过对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>
有什么好的解决方案可以将对象与其他功能保持在同一范围内?
最佳答案
只需在var
之外声明$(document).ready
,然后在不使用var
的情况下分配其值
var dataObject ;
$(document).ready(function() {
dataObject = new DataEntryObj(); // create the data object
......
});
现在,这相当于
window.dataObject