renathy Posted November 14, 2009 Report Share Posted November 14, 2009 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? Quote Link to comment Share on other sites More sharing options...
2easy Posted November 14, 2009 Report Share Posted November 14, 2009 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"; Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.