RaphaëljsSelectPaper

时间:2013-07-30 02:04:44

标签: javascript raphael

我正在尝试引用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();

1 个答案:

答案 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();
})();