Gunnar Bittersmann: JS-Hover global für eine Seite

Beitrag lesen

Hello out there!

function imghover(imgobj, dir) {

if (dir = 'over') {
  var oldsrc = imgobj.src;
  var newsrc = oldsrc.replace(/_up/, "_over");
  imgobj.src = newsrc;
}
if (dir = 'up') {
  var oldsrc = imgobj.src;
  var newsrc = oldsrc.replace(/_over/, "_up");
  imgobj.src = newsrc;
}
}

Vom '=='-Problem abgesehen:
Wenn die Bedingung der ersten Abfrage erfüllt ist, kann man sich die zweite Abfrage sparen. Die zweite sollte also im Else-Zweig der ersten stehen:

function imghover(imgobj, dir)  
{  
 if (dir == 'over')  
 {  
  var oldsrc = imgobj.src;  
  var newsrc = oldsrc.replace(/_up/, "_over");  
  imgobj.src = newsrc;  
 }  
 else if (dir == 'up')  
 {  
  var oldsrc = imgobj.src;  
  var newsrc = oldsrc.replace(/_over/, "_up");  
  imgobj.src = newsrc;  
 }  
}

Wenn dafür gesorgt ist, dass der Parameter 'dir' nur mit den Werten 'over' bzw. 'up' gefüttert wird, kann die zweite Abfrage auch ganz entfallen. Und gemeinsame Codezeilen müssen nicht doppelt notiert werden:

function imghover(imgobj, dir)  
{  
 var oldsrc = imgobj.src;  
  
 if (dir == 'over')  
 {  
  var newsrc = oldsrc.replace(/_up/, "_over");  
 }  
 else  
 {  
  var newsrc = oldsrc.replace(/_over/, "_up");  
 }  
  
 imgobj.src = newsrc;  
}

Dann bietet sich die einfache Entweder-Oder-Abfrage an:

function imghover(imgobj, dir)  
{  
 var oldsrc = imgobj.src;  
 var newsrc = (dir == 'over' ? oldsrc.replace(/_up/, "_over") : oldsrc.replace(/_over/, "_up"));  
 imgobj.src = newsrc;  
}

See ya up the road,
Gunnar

--
„Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)