Javascript $(文档)存在一些范围问题。准备好了吗

Javascript $(文档)存在一些范围问题。准备好了吗,javascript,scoping,chart.js,Javascript,Scoping,Chart.js,不读“我的甜甜圈”有问题。这是控制台中提供的错误:UncaughtTypeError:无法读取未定义用户的属性“forEach”。js?body=1:50 但是,当我在另一个文件上测试它,并将脚本放在页面底部,而没有$(文档)。ready或window onload可以完美地工作。这里是一个小提琴,用于提供的代码,但没有错误,您可以尝试使用它来复制吗。错误指的是data.forEach还是myDoughnut.segments.forEach $(document).ready(function

不读“我的甜甜圈”有问题。这是控制台中提供的错误:UncaughtTypeError:无法读取未定义用户的属性“forEach”。js?body=1:50


但是,当我在另一个文件上测试它,并将脚本放在页面底部,而没有$(文档)。ready或window onload可以完美地工作。

这里是一个小提琴,用于提供的代码,但没有错误,您可以尝试使用它来复制吗。错误指的是data.forEach还是myDoughnut.segments.forEach
$(document).ready(function(){

  var data = [
    {
        value: 30,
        color:"#F7464A",
        highlight: "#FF5A5E",
        label: "Red"
    },
    {
        value: 30,  
        color: "#46BFBD",
        highlight: "#5AD3D1",
        label: "Green"
    },
    {
        value: 30,
        color: "#FDB45C",
        opacity: 30,
        highlight: "#FFC870",
        label: "Yellow"
    }
];


    var ctx = $('#chart-area').get(0).getContext("2d");
    var myDoughnut = new Chart(ctx).Doughnut(data, {
            responsive : true,
            animateRotate: true,
            animateScale: false,
            percentageInnerCutout: 70,
            animationEasing : "easeInOutQuart"
    });

  function updateData() {
      data.forEach(function(entry) {
          entry.value += 10;
      });
  }

  document.getElementById("button").onclick = function() {
    updateData(); // for demo only
    var index = 0;

    myDoughnut.segments.forEach(function(segment) {
      segment.value = data[index++].value;
    });
      myDoughnut.update();
  };
});