1

我正在创建一个表面并在其上绘制一些形状。现在做一个

dojo.connect(iSurface.getEventSource(), "mousedown", HandleMouseDown);

并在处理程序试图使目标形状可移动期间。

HandleMouseDown(event)
{
    foo = new dojox.gfx.Moveable(event.target);
}

但是我不断收到“this.shape.connect 不是函数”,我认为这是因为 event.target 是一个 svg 矩形而不是一个 gfx 形状对象。谁能帮我找到如何在事件中获取 gfx 形状对象而不是底层 svg 对象?

谢谢。

4

1 回答 1

2

您可以将上下文作为参数提供给 dojo.connect:

dojo.connect(iSurface.getEventSource(), 'mousedown', {shapeObj: svgShape}, HandleMouseDown);

或者如果 shapeObj 对象属于这个

dojo.connect(iSurface.getEventSource(), 'mousedown', this, HandleMouseDown);

并在事件处理程序中有 this.shapeObj:

function HandleMouseDown(e) {
  foo = new dojox.gfx.Moveable(this.shapeObj);
}
于 2011-11-08T13:06:14.610 回答