All (almost.. all) elements in SVG can be animated using javascript.
An example is shown below. The javascript is payload in the CDATA section. The square registers a listener:
onclick. The corresponding handler can be found in the CDATA section.
When click the square will invoke the randomcolor function and the color attribute will be randomized. Code:
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" >
<script type="text/ecmascript">
<![CDATA[
function randomcolor(evt) {
var red = Math.round(Math.random() * 255);
var green = Math.round(Math.random() * 255);
var blue = Math.round(Math.random() * 255);
evt.target.setAttributeNS(null,"fill","rgb("+ red +","+ green+","+blue+")");
}
]]>
</script>
<g id="g1">
<rect id="square" width="80" height="80" x="40" y="20"
fill="blue" onclick="randomcolor(evt)"/>
</g>
<text x="40" y="120">Click on square to change it's color.</text>
</svg>
It will show up like: