Самый простой способ очистить контейнер, используя javascript графическую библиотеку raphaeljs - PullRequest
12 голосов
/ 12 июля 2009

Я должен очистить и перерисовать главный контейнер Raphael Javascript. Я пробовал с

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

Есть идеи?

Ответы [ 4 ]

15 голосов
/ 27 августа 2009

Когда вы создаете бумагу, она создает объект DOM. Вы можете получить доступ к этому с

paper.canvas

Когда вы создаете новый объект Raphael, вы создаете новый объект DOM и оставляете оригинальный один! Хотя это лучший способ сделать это, учитывая все. Если вы хотите удалить холст, вам нужно всего лишь выполнить следующую команду:

//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);
}
10 голосов
/ 08 марта 2010

На самом деле, я только что заметил, что гораздо проще paper.clear (); Это не задокументировано.

3 голосов
/ 23 сентября 2012

с последней версией gRaphael 0.5.1, я легко очищаю график, просто вызывая метод clear (). т.е.

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

Но я не уверен, будет ли это работать для вашей версии

0 голосов
/ 13 июля 2009

Да! ты должен пахать до конца документов ..

(
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

...