无法使用闭包读取null的属性'getContext'

时间:2016-01-05 09:20:21

标签: jquery canvas closures

通常在渲染画布时将代码包装在

def clean_book_intro_component(component)
  @component ||= {}
  @component[component] ||= sanitize @book.intro.send(component), tags: %w(span b i p a), attributes: %w(id class style href)
end

但是,我使用的代码在外部有一个闭包,因此格式为..

$(function() { ....});

我无法使用$修复canvas getContext错误。有任何想法吗?

1 个答案:

答案 0 :(得分:0)

问题不在于您使用闭包,或者您需要使用就绪处理程序。

但问题是当你使用jQuery方法并尝试组合核心javascript的getContext方法时会抛出一个指示未定义函数的错误。要解决此问题,您需要这样做:

var $canvas = $('#jCanvas'); //From jQuery object
$canvas[0] //To JavaScript ::  [0] is first matched element
  .getContext('2d');

现在,这样getContext在javascript元素上使用并且工作正常。

但为了简单起见,我不会将它们包装在jQuery中,只需使用JavaScript:

var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');