我在dojox gfx中遇到事件处理问题。
请考虑以下代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Example</title>
<!-- load Dojo -->
<script>
dojoConfig = {
async: true,
gfxRenderer: "svg,silverlight,vml" // svg gets priority
};
</script>
<script src="dojo/dojo.js"></script>
</head>
<body>
<script>
require(["dojox/gfx","dojox/gfx/Moveable","dojo/domReady!","dojox/gfx/fx"],function(gfx,Moveable,dom,gfxFx) {
var surface = gfx.createSurface("surfaceElement", 400, 400);
var rect = surface.createRect({ x: 30, y: 30, width: 100, height: 100 }).setFill('blue');
rect.connect('onclick',function(e) {
alert('first')
});
var otherRect = surface.createRect({ x: 30, y: 30, width: 100, height: 50 }).setFill('red');
});
</script>
<!-- DOM element which will become the surface -->
<div id="surfaceElement"></div>
</body>
</html>
当我点击红色矩形时,有没有办法处理蓝色矩形的事件? 感谢
答案 0 :(得分:0)
只需在事件监听器前面移动第二个矩形,然后按变量引用它:
require(["dojox/gfx","dojox/gfx/Moveable","dojo/domReady!","dojox/gfx/fx"],function(gfx,Moveable,dom,gfxFx) {
var surface = gfx.createSurface("surfaceElement", 400, 400);
var rect = surface.createRect({ x: 30, y: 30, width: 100, height: 100 }).setFill('blue');
var otherRect = surface.createRect({ x: 30, y: 30, width: 100, height: 50 }).setFill('red');
rect.connect('onclick',function(e) {
// otherRect is available here
console.log(otherRect);
});
});