如何在没有window.onload包装器的情况下运行函数

时间:2015-08-17 21:09:39

标签: javascript function canvas charts

有没有办法在没有" window.onload"的情况下运行以下功能?我试图加载图表而不加载到Body中。

window.onload = function() {

var myPie = new Chart(document.getElementById("mycanvas_pie").getContext("2d")).Pie(pieData1,opts);
}

2 个答案:

答案 0 :(得分:1)

如果您在HTML中的mycanvas_pie之后调用此行(或包含此行的加载脚本),则不需要window.onload。

<canvas id="mycanvas_pie"></canvas>
<script>
    var myPie = new Chart(document.getElementById("mycanvas_pie").getContext("2d")).Pie(pieData1,opts);
</script>

会有效。

答案 1 :(得分:1)

因为你的代码试图通过id(“mycanvas_pie”)来获取一个DOM元素,所以它必须在创建DOM之后执行。否则它将无法工作,因为你无法获得一个不存在的元素。您可以使用自调用函数,该函数将在创建DOM时调用。

(function(){
    var myPie = new Chart(document.getElementById("mycanvas_pie").getContext("2d")).Pie(pieData1,opts);
})();

就像执行这样的代码:

$(document).ready(function(){
    // some code
});