このコードでは、要素内の各<area>タグにロールオーバー効果をバインドすることになっています。<map>
function initLinks(webrt) {
  var areas = document.querySelectorAll("map#streetmap > area");
  var links = new Array(areas.length);
  for (var i=0; i<links.length; i++) {
    links[i] = new Image(786,272);
    links[i].src = webrt+"templates/default/sketches/links"+(i+1)+".png";
    areas[i].onmouseover=function(){switchLinkImg(webrt+"templates/default/sketches/links"+(i+1)+".png");};
    areas[i].onmouseout=function(){switchLinkImg(webrt+"templates/default/sketches/links.png");};
  }
}
奇妙なことに、各<area>onmouseover イベントは、存在しないイメージを読み込もうとします: /templates/default/sketches/links6.png. i関数に渡す文字列を取得するのではなく、6 にインクリメントされたこの変数をグローバル変数として保持するのはなぜですか?
これを修正するにはどうすればよいですか?
注: jQuery はありません。