为什么我的全局变量为null?

时间:2014-04-25 12:07:08

标签: javascript

var matte_canvas_width = $("#matte_canvas").width();
var matte_canvas_height = $("#matte_canvas").height();
function moulding_draw(img, fillet)
{

  //var matte_canvas_width = $("#matte_canvas").width();
  //var matte_canvas_height = $("#matte_canvas").height();
  console.log("matte_canvas_width: " + matte_canvas_width);
  console.log("matte_canvas_height: " + matte_canvas_height);
}

当我在函数外部声明变量时,控制台输出null作为值。为什么会这样?

3 个答案:

答案 0 :(得分:2)

var matte_canvas_width = $("#matte_canvas").width();
var matte_canvas_height = $("#matte_canvas").height();
在dom正确加载时应该调用

答案 1 :(得分:1)

正确的方法是

var matte_canvas_width;
var matte_canvas_height;

$(document).ready(function() {
    matte_canvas_width = $("#matte_canvas").width();
    matte_canvas_height = $("#matte_canvas").height();
    moulding_draw("", "");
});

function moulding_draw(img, fillet)
{

  //var matte_canvas_width = $("#matte_canvas").width();
  //var matte_canvas_height = $("#matte_canvas").height();
  console.log("matte_canvas_width: " + matte_canvas_width);
  console.log("matte_canvas_height: " + matte_canvas_height);
}

答案 2 :(得分:0)

虽然你认为已经设置了它,但它可能从来都不是第一位的。

如何知道$("#matte_canvas").width();最初会给你价值?