Creo que el error está en que no imprimes el botón del carrito correctamente como se hace en PHP usando
de nuevo.
Esto solo funcionaría si tuvieses tus funciones en un archivo.php:
Código PHP:
<?php
$boton_html = "<div id='compra'><img src='botonComprar.gif' class='compra' onclick='carrito(\"$articulo\",$precio_articulo); traerDatos(\"$articulo\",$precio_articulo);'/></div>";
?>
Código:
capaCarrito.innerHTML="<?php echo $boton_html; ?>"
En caso de que quieras mantener los javascript en un .js, deberías usar su forma de concatenar cadenas de textos usando "+":
Código:
capaCarrito.innerHTML = "<div id='compra'><img src='botonComprar.gif' class='compra' onclick='carrito(\""+ articulo +" \", "+ precio +"); traerDatos(\""+ articulo +"\", " + precio + ");'/></div>"
No te olvides de darle los valores a var articulo y precio en javascript.
No me gusta mucho como lo has organizado, pero creo que te funcionará jaja. Ya me cuentas algo.