Simplest way to clear a container using raphaeljs javascript graphical library

Emilio picture Emilio · Jul 12, 2009 · Viewed 13.4k times · Source

I have to clear and redraw a raphael javascript main container. I've tried with

var paper = Raphael(10, 50, 320, 200);
paper.remove();  // Doesn't work
paper.node.removeNode();    //this neither
paper.removeNode();   //this neither

Any idea?

Answer

Carlos Lopez picture Carlos Lopez · Aug 27, 2009

When you create a paper it creates a DOM object. You can access this with

paper.canvas

When you create a new Raphael object, you create a new DOM object and leave the original one alone! This is the best way to do it considering everything though. If you want to delete the canvas you only need to do the next command:

//Note: after calling this function the paper object will be useless!
//Make paper object null (or a new paper object) immediately!
function clearPaper(paper){
    var paperDom = paper.canvas;
    paperDom.parentNode.removeChild(paperDom);
}