Skip navigation
Fazl Quazi
Currently Being Moderated

Swap image restore not restoring all images

Apr 24, 2012 4:41 PM

I've set up a simple rollover that swaps out two different images following the instructions provided by Adobe. If I roll over an image, it swaps out that image and a different image. That part works fine. But when I roll off the image, it only restores the one I originally rolled over, but not the secondary image. Here's the relevent code:



<script type="text/javascript">

function MM_swapImgRestore() { //v3.0

  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;


function MM_preloadImages() { //v3.0

  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}




function MM_findObj(n, d) { //v4.01

  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

  if(!x && d.getElementById) x=d.getElementById(n); return x;




function MM_swapImage() { //v3.0

  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)

   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}






<a href="aboutus.html" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('aboutus','','images/aboutus2.png',1)"><img src="images/buttons_06.png" alt="About Us" name="aboutus" width="67" height="26" border="0" id="aboutus" onmouseover="MM_swapImage('text','','images/text2.png',1)" onmouseout="MM_swapImgRestore()" /></a>


It restores aboutus just fine, but it isn't restoring text.


Any help would be appreciated!

  • Sudarshan Thiagarajan
    4,000 posts
    Oct 15, 2010
    Currently Being Moderated
    Apr 25, 2012 5:39 AM   in reply to Fazl Quazi

    Post a link to your active site here so we could diagnose.

    Mark as:
  • Sudarshan Thiagarajan
    4,000 posts
    Oct 15, 2010
    Currently Being Moderated
    Apr 26, 2012 2:25 AM   in reply to Fazl Quazi

    I'm assuming you'd have assigned behaviors for the Swap Image twice - once for the about image to change and second time for the top image to change. This makes DW create 2 instances of mouseover code and the mouseout code is replaced by the 2nd change to your Swap Image.


    The ideal way of doing this is to select your trigger image that you want to activate SwapImage function. Add behavior > Swap Image > first choose a swap source for 'about'. Don't Click OK yet. Choose your 2nd image that you want to change - text, in our case. Select a swap source for this as well. Ensure Preload images and Restore on Mouseout are checked. Now, click OK.


    Your task should be completed.


    I've uploaded the correct version at for you to view.


    Another quick thing I wanted to point out to you: I see you've used complete slices to make your site. This is usually bad practice. Try not to slice your site fully, directly from Photoshop. Define your CSS and use HTML with individual elements to complete your site.

    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points