Mediante el método find es posible aplicar una método a todo un grupo de objetos. A continuación vemos como diferenciar dos grupos de rectángulos por su id, aplicando diferentes eventos a cada uno de ellos.
Nota: a la hora de aplicar eventos a un grupo de objetos es mejor usar eventos live
function randomId() {
return Math.random() > .5 ? "good" : "bad";
}
for (var i = 0; i < 4; i++) {
for (var j = 0; j < 4; j++) {
// Aplicar id aleatorio
ce.rect(i*20+100, j*20+40, 20).addId(randomId());
}
}
// rectángulos tanto #good como #bad
ce.find("rect").attr({
fill: "green",
stroke: "#000"
});
// rectángulos #bad
ce.find("#bad").click(function(c, e) {
if (this.fill != "red") {
puntos -= 1;
this.fill = "red";
}
score_view.setText(puntos + " puntos");
});
// rectángulos #good
ce.find("#good").click(function(c, e) {
if (this.fill != "gray") {
puntos += 1;
this.fill = "grey";
}
score_view.setText(puntos + " puntos");
});