Crear los cuadros, se puede de las dos formas. Pero hacerlos por separado simplifica el agregarles un evento,
Código HTML:
Ver original<!DOCTYPE html>
<canvas id="cvn0" width="200" height="50" style="border:1px solid #c3c3c3;"></canvas>
<canvas id="cvn1" width="50" height="50" style="border:1px solid #c3c3c3; background: red;margin: 0;"></canvas> <canvas id="cvn2" width="50" height="50" style="border:1px solid #c3c3c3; background: blue; margin:0;" onclick="alert('segundo cuadro azul')"></canvas> <canvas id="cvn3" width="50" height="50" style="border:1px solid #c3c3c3; background: green; margin:0;"></canvas> <canvas id="cvn4" width="50" height="50" style="border:1px solid #c3c3c3; background: lime;margin: 0;"></canvas> <script type="text/javascript"> var c=document.getElementById("cvn0");
var cuadro=c.getContext("2d");
cuadro.fillStyle="#FF0000";
cuadro.fillRect(0,0,50,50);
var cuadro2=c.getContext("2d");
cuadro2.fillStyle="blue";
cuadro2.fillRect(50,0,50,50);
var cuadro3=c.getContext("2d");
cuadro3.fillStyle="green";
cuadro3.fillRect(100,0,50,50);
var cuadro4=c.getContext("2d");
cuadro4.fillStyle="lime";
cuadro4.fillRect(150,0,50,50);
//
var cl = document.getElementById('cvn1');
cl.addEventListener('click', function(){ alert('segundo cuadro rojo');}, false);
Y si solo fuesen cuadros, yo en particular evitaría el canvas y utilizaría un div (o un figure de html5), sería más compatible
saludos