Dav*_*.ca 122 javascript dojox.gfx
我有以下dojo代码在div下创建表面图形元素:
....
<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>
....
Run Code Online (Sandbox Code Playgroud)
drawRec()将第一次绘制矩形图形.如果我在锚点href中再次调用此函数,如下所示:
<a href="javascript:drawRec();">...</a>
Run Code Online (Sandbox Code Playgroud)
它会再次绘制另一个图形.我需要清理div下的所有图形,然后再次创建.如何添加一些dojo代码呢?
Mau*_*rry 283
while (node.hasChildNodes()) {
node.removeChild(node.lastChild);
}
Run Code Online (Sandbox Code Playgroud)
Che*_*try 43
node.innerHTML = "";
Run Code Online (Sandbox Code Playgroud)
非标准,但速度快,支持良好.
Eug*_*kin 24
首先,你需要创建一个表面并将其保存在方便的地方.例:
var surface = dojox.gfx.createSurface(domNode, widthInPx, heightInPx);
Run Code Online (Sandbox Code Playgroud)
domNode通常是一个简单的<div>,用作表面的占位符.
您可以一次性清除曲面上的所有内容(所有现有的形状对象都将失效,之后不要使用它们):
surface.clear();
Run Code Online (Sandbox Code Playgroud)
所有与表面相关的函数和方法都可以在dojox.gfx.Surface的官方文档中找到.使用的例子可以在dojox/gfx/tests/.
Jam*_*mes 20
while(node.firstChild) {
node.removeChild(node.firstChild);
}
Run Code Online (Sandbox Code Playgroud)
Bri*_*n C 18
在Dojo 1.7或更高版本中,使用domConstruct.empty(String|DomNode):
require(["dojo/dom-construct"], function(domConstruct){
// Empty node's children byId:
domConstruct.empty("someId");
});
Run Code Online (Sandbox Code Playgroud)
在较旧的Dojo中,使用dojo.empty(String|DomNode)(在Dojo 1.8中弃用):
dojo.empty( id or DOM node );
Run Code Online (Sandbox Code Playgroud)
这些empty方法中的每一个都安全地删除节点的所有子节点.