javascript - 如何保持对象范围?-LMLPHP

我正在实现以下功能。页面的大部分是在我的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

09-11 18:26
查看更多