我需要在程序中创建几个Raphael对象。 field1和field2是div元素。每个Raphael对象(paper1,paper2,...)都将拥有独特的画布,它们都需要具有完全相同的功能。 Raphael对象需要在以后动态创建。在下面的示例代码中,我需要知道哪些对象触发了mousedown事件。我还想知道在哪个div-element(field1 / field2这里)是mousedown事件被触发。我怎样才能获得这些信息?
var myProgram = (function() {
var paper1 = Raphael("field1", 200, 400, fieldActions);
var paper2 = Raphael("field2", 200, 400, fieldActions);
var planeAttrs = {
fill: "#fff"
};
function fieldActions(){
var that = this;
that.field = that.rect(0, 0, 200, 400, 30);
that.field.attr(planeAttrs);
that.field.mousedown( function(e) {
});
});
}());
答案 0 :(得分:2)
that.field.mousedown( function(e) {
console.log(this, this.node, this.paper.canvas, this.paper.canvas.parentNode)
});
this
- rect raphael对象
this.node
- rect svg dom元素
this.paper.canvas
- svg dom元素
this.paper.canvas.parentNode
- 包含id(field2 / field1)的div,其中包含单击的svg。
答案 1 :(得分:0)
你走了:
that.field.mousedown( function(e) {
var target = e.target;
var svgElem = target.parentNode;
var div = svgElem.parentNode;
alert(div.id);
});