Ich habe die folgenden Dojo-Codes, um ein Oberflächengrafikelement unter einem div zu erstellen:
....
<script type=text/javascript>
....
function drawRec(){
var node = dojo.byId("surface");
// remove all the children graphics
var surface = dojox.gfx.createSurface(node, 600, 600);
surface.createLine({
x1 : 0,
y1 : 0,
x2 : 600,
y2 : 600
}).setStroke("black");
}
....
</script>
....
<body>
<div id="surface"></div>
....
drawRec()
zeichnet beim ersten Mal eine Rechteckgrafik. Wenn ich diese Funktion in einem Anker href wie folgt erneut aufrufe:
<a href="javascript:drawRec();">...</a>
es wird wieder eine andere Grafik gezeichnet. Was ich brauche, um alle Grafiken unter dem div zu bereinigen und dann neu zu erstellen. Wie kann ich dazu einige Dojo-Codes hinzufügen?
javascript
dojox.gfx
David.Chu.ca
quelle
quelle
Nicht standardisiert, aber schnell und gut unterstützt.
quelle
Zunächst müssen Sie eine Oberfläche einmal erstellen und an einem handlichen Ort aufbewahren. Beispiel:
domNode
ist in der Regel ein schmuckloser<div>
, der als Platzhalter für eine Oberfläche verwendet wird.Sie können alles auf der Oberfläche auf einmal löschen (alle vorhandenen Formobjekte werden ungültig, verwenden Sie sie danach nicht mehr):
Alle oberflächenbezogenen Funktionen und Methoden finden Sie in der offiziellen Dokumentation unter dojox.gfx.Surface . Anwendungsbeispiele finden Sie in
dojox/gfx/tests/
.quelle
quelle
elem.textContent = "";
jedoch nur, weil jQuery dies tut, heißt das nicht, dass es nicht fehlerhaft ist. Stwissel sagt beispielsweise: "innerHTML funktioniert nur, wenn Sie nur mit HTML arbeiten. Wenn es z SVG nur innerhalb der Elemententfernung funktioniert ". Siehe auch andere relevante Hinweise hier: stackoverflow.com/questions/3955229/…Verwenden Sie in Dojo 1.7 oder neuer
domConstruct.empty(String|DomNode)
:Verwenden Sie im älteren Dojo
dojo.empty(String|DomNode)
(veraltet bei Dojo 1.8):Jede dieser
empty
Methoden entfernt sicher alle untergeordneten Elemente des Knotens.quelle
Aus der Dojo-API- Dokumentation :
quelle
Wenn Sie nach einer modernen> 1.7 Dojo-Methode suchen, um alle Kinder des Knotens zu zerstören, ist dies die folgende Methode:
Weitere Informationen finden Sie in der Dokumentation zu "dom-construct".
quelle
domConstruct.empty()
, in diesem Fall wäre es besser.