Jump to content
php.lv forumi

Javascript SwapImage


renathy

Recommended Posts

Vienā failiņā man jau ir gatava funkcija SwapImage, gribētos lai kāds nedaudz to pasakidro:

 

function SwapImage()
{
  var doc=document, args=arguments;
  doc.$imgSwaps = new Array();
  for(var i=2; i<args.length; i+=2)
  {
     var elem=FindObject(args[i]);
     if(elem)
     {
        doc.$imgSwaps[doc.$imgSwaps.length]=elem;
        elem.$src=elem.src;
        elem.src=args[i+1];
     }
  }
}
function FindObject(id, doc)
{
  var child, elem;
  if(!doc)
     doc=document;
  if(doc.getElementById)
     elem=doc.getElementById(id);
  else
  if(doc.layers)
     child=doc.layers;
  else
  if(doc.all)
     elem=doc.all[id];
  if(elem)
     return elem;
  if(doc.id==id || doc.name==id)
     return doc;
  if(doc.childNodes)
     child=doc.childNodes;
  if(child)
  {
     for(var i=0; i<child.length; i++)
     {
        elem=FindObject(id,child[i]);
        if(elem)
           return elem;
     }
  }
  var frm=doc.forms;
  if(frm)
  {
     for(var i=0; i<frm.length; i++)
     {
        var elems=frm[i].elements;
        for(var j=0; j<elems.length; j++)
        {
           elem=FindObject(id,elems[i]);
           if(elem) return elem;
        }
     }
  }
  return null;
}

 

Proti, funkcija tiek izmantota, lai onmouseover nomainītu bildīti.

Es šito nerakstīju, bet gribu saprast.

Piemēram, nekad agrāk nelietoju tādu konstrukciju - doc.$imgSwaps

Ko tā nozīmētu?

Kā pēc būtības darbojas ši funkcija?

Link to comment
Share on other sites

konstrukcija doc.$imgSwaps nozīmē, ka objektam doc ir īpašība/property $imgSwaps

funkcijā ImageSwap() tas ir nodefinēts 4. rindiņā ;)

doc.$imgSwaps = new Array();

tobish, tas ir visparastākais masīvs! :))

ko vienkāršāk būtu pierakstīt

doc.$imgSwaps = [];

Kā pēc būtības darbojas ši funkcija?

hmm, vispār jau funkcijas būtība ir funkcijas nosaukumā ;) bet konkrēti šai funkcijai padod bildes id un jauno src, un tā to nomainīs. savādi, ka tā neņem vērā pirmos 2 argumentus, tāpēc to izsauc šādi: SwapImage(0, 0, "bilde-1-id", "bilde-1-src", "bilde-2-id", "bilde-2-src", ...); (šo netestēju, tikai kodu izlasīju)

 

pasaulē ir sarakstīts ļoti daudz koda ar n-tajiem workaroundiem priekš visādiem spec gadījumiem, un tevis iepostētais koda gabals tam ir piemērs, taču to mierīgi varētu aizvietot ar vienu rindiņu

document.getElementById("bildes-id").src = "jaunais-src";

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...