我有一个包含3个元素的对象,这些元素绑定在一起形成一组。当单击绿色矩形时,我需要删除此对象(或者至少是它的图形表示——即该组)。 a.click() 能够正常工作,但 c.click() 却不能,我想知道为什么:
var s = Snap(500, 500);
function myObj() {
this.g = s.group();
this.drawIt = function() {
var a = s.rect(0, 0, 50, 50, 0, 0).attr({'fill':'#E82941'}),
b = s.rect(20, 20, 50, 50, 0, 0).attr({'fill':'#FF6E00'}),
c = s.rect(40, 40, 50, 50, 0, 0).attr({'fill':'#00C049'});
this.g.append(a, b, c);
a.click(function(e){this.attr({'fill':'#000'});});
c.click(this.killIt);
}
this.killIt = function() {
this.g.remove();
}
}
var obj = new myObj();
obj.drawIt();
Snap.svg 0.3.0。
…
g
中只有a
,所以请尝试使用this.g.append(a); this.g.append(b);this.g.append(c);
而不是this.append(a,b,c)
。这样做可以解决问题。 - Prashanth Pamidithis.killIt
替换为() => {this.killIt()}
也是有效的吗? - Dave Elton