我正在尝试引用Raphaël.js创建的canvas元素。问题是,我使用它的方式,Raphaël.js将创建一个覆盖旧画布的新画布。使用jQuery选择器我只能检索DOM节点,这不允许我在画布上绘制。
示例代码:
<div id='canvas_container' class='canvas_container'></div>
function x() {
var panel = Raphael("canvas_container");
}
function y() {
Raphael("canvas_container"); // will create new canvas
$("#canvas_container"); // doesn't allow me to draw on the canvas
}
x();
y();
答案 0 :(得分:0)
Raphael目前仅公开创建新Paper的功能,作为具有您提供的ID的节点的子节点,而不是从DOM节点检索Paper。在示例代码中,您将创建两个单独的Papers。为了只创建一个并重复使用它,您需要保留对原始Paper的引用。实现这一目标的一种可能性是:
(function() {
var paper;
function x() {
paper = Raphael("canvas_container");
}
function y() {
var c = paper.rect(10, 10, 50, 50);
}
x();
y();
})();