Das Problem sind Closures in Schleifen (zu den Stichwörtern findest du im Forumsarchiv einiges). D.h. in der Schleife notierst du Funktionen, die den Schleifenzähler i einschließen. Wenn die Funktionen aufgerufen haben, ist der Wert von i jedoch der des letzten Schleifendurchlaufs (10). Es gibt verschiedene Möglichkeiten, der Handler-Funktion das passende i zur Verfügung zu stellen. Du kannst z.B. eine weitere Funktion verwenden, die mit jedem Schleifendurchlauf ausgeführt wird und die den Schleifenzähler übergeben bekommt:
for (i = 2; i <= 10; i++) (function (i) {
$('#test'+i).toggle(function () {
$('#ziel'+i).css({"background-image":"url(foto.gif)"});
}, function () {
$('#ziel'+i).css({"background-image":"url(/foto.gif)"});
});
})(i);
So schließen die Closures immer den richtigen i-Wert ein.
Mathias