我正在创建一个表面并在其上绘制一些形状。现在做一个
dojo.connect(iSurface.getEventSource(), "mousedown", HandleMouseDown);
并且在处理程序中尝试使目标形状可移动。
HandleMouseDown(event)
{
foo = new dojox.gfx.Moveable(event.target);
}
但是我一直得到“this.shape.connect不是函数”,我认为这是因为event.target是svg rect而不是gfx形状对象。任何人都可以帮我找到如何在事件中获取gfx形状对象而不是底层的svg对象?
感谢。
答案 0 :(得分:2)
您可以提供上下文作为dojo.connect的参数:
dojo.connect(iSurface.getEventSource(), 'mousedown', {shapeObj: svgShape}, HandleMouseDown);
或者shapeObj对象属于 this :
dojo.connect(iSurface.getEventSource(), 'mousedown', this, HandleMouseDown);
并在事件处理程序中使用this.shapeObj:
function HandleMouseDown(e) {
foo = new dojox.gfx.Moveable(this.shapeObj);
}