2009-07-12 13 views
12

Tengo que borrar y volver a dibujar un contenedor principal de JavaScript de raphael. Lo he intentado conForma más sencilla de borrar un contenedor usando la biblioteca gráfica de JavaScript de raphaeljs

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

¿Alguna idea?

+0

lo que es un Rafael? – BerggreenDK

+0

http://raphaeljs.com/, una biblioteca gráfica de JavaScript – Emilio

Respuesta

9

En realidad, acaba de llegar a mi cuenta de que existe la paper.clear mucho más fácil(); No está documentado.

+0

Sí, ahora está documentado http://dmitrybaranovskiy.github.io/raphael/reference.html#Paper.clear – RikiRiocma

0

Sí! tiene que arar hasta el final de los documentos ..

(
function (local_raphael) 
{ 
/*Put your little bit of Rap code in here*/ 
var paper = local_raphael(10, 10, 320, 200); 
} 
)(Raphael.ninja()); 

http://www.irunmywebsite.com/raphael/raphaelsource.html

+0

Raphael.ninja() (http://raphaeljs.com/reference.html#Raphael.ninja) elimina toda la biblioteca, por lo que no creo que sea Es posible hacer cualquier otra cosa en Raphael después de llamarlo. Creo que paper.clear() sería suficiente para eliminar los elementos en el papel, o paper.remove() para eliminar realmente el papel del DOM. – beldaz

15

Cuando se crea un documento que crea un objeto DOM. Puede acceder a este con

paper.canvas 

Cuando se crea un nuevo objeto de Rafael, se crea un nuevo objeto DOM y deja el original solo! Esta es la mejor manera de hacerlo teniendo todo en cuenta. Si desea borrar el lienzo sólo tiene que hacer la siguiente orden:

//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); 
} 
+1

¿Qué hay de http://raphaeljs.com/reference.html#Paper.remove? – beldaz

3

con el último gRaphael 0.5.1, borro el gráfico fácilmente con solo llamar al método clear(). decir

var r = Raphael(...) 
r.clear(); 

Pero no estoy seguro de si funcionaría para su versión

Cuestiones relacionadas