Dit begint lichtjes offtopic te gaan (ik denk dat de persoon in kwestie zijn probleem ondertussen al in het tienvoud opgelost is). Maar ik wou toch even hier nog op ingaan:
Smoerf zei:
1) hoe zou jij je inputs een genummerde id meegeven als je ze niet 1 per 1 een id meegeeft?
Ik ben in de eerste plaats *helemaal niet* voor het idee om elke input een eigen id te geven, dus heb ik ook geen antwoord op die vraag. Het vertroebelt de html imo, maar anderzijds kan je wel het argument maken dat een 20kbyte javascript implementatie van css selectoren daar niet tegen opweegt.
2) de onchange event registreren bij de select is wat mij betreft niet echt heel moeilijk, ofwel doe je het inline, en als je echt je code en opmaak gescheiden wil houden kan het met document.getElementById('selectid').onchange = placeInputs;
Jquery is verre van perfect, de slickspeed test toont dit redelijk goed aan... En de addEvent functie? Toch nie die van PPK en Dean Edwards? De enige die volgens mij met een goede addEvent functie kwam was Tino Zijdel.
Ah, mijn favoriet onderwerp. PPK is zelf
fan van wat je hier als voorbeeldcode geeft. Het nadeel daarvan is dat op die manier de <select> maar één changeevent kan hebben. Toegegeven in dit geval zal er ook maar één zijn, maar in het algemeen is dat niet zo.
Hij zag de problemen van deze methode en van de simpele addEvent van Scott Andrew LePera wel in en
organiseerde een wedstrijd om de functie op een korte en efficiente manier te laten voldoen aan de belangrijkste eisen:
* Er kunnen meerdere verschillende functies gebind worden aan elke combinatie van object en event.
* Die functies moeten ook terug geremoved worden van de event.
* De betekenis van het this keyword gaat niet verloren.
* Eénzelfde functie kan voor elke combinatie van object en event slechts éénmaal geregistreerd worden.
* Bij voorkeur wordt ineens het juiste event object meegegeven.
De winnaar werd John Resig (bekend van jquery), omwille van het goede idee en relatief korte implementatie. Zijn oplossing heeft echter nog een aantal problemen, opgemerkt door PPK's vele lezers en ongetwijfeld teleurgestelde deelnemers:
* Het steunt op de toString() methode van functies voor zijn unieke keys, wat traag is aangezien de functie daarvoor gedecompiled moet worden.
* Het is nog steeds mogelijk om in IE de functie verschillende keren te attachen.
* Er zaten oorspronkelijk wat memory leaks in.
Dit wordt allemaal mooi
samengevat op deze pagina, waarin de auteur voorstelt om een aangepaste versie van Dean Edwards oplossing te gebruiken. Zijn oplossing lost de voorgaande problemen op, maar imo te lang en ook gebaseerd op een globale counter (bleh).
Ik ben zelf aan het werk geslagen omdat ik John's concept beter vond dan die van Dean, alleen mankeerde hij een deftige keygenerator en een manier om meervoudig toevoegen van dezelfde functie aan eenzelfde object/event te voorkomen. Het is bijna even compact als John's wedstrijdinzending, maar lost wel de resterende problemen op:
Code:
function addEvent(o, type, fn) {
if(o.addEventListener)
o.addEventListener(type, fn, false);
else {
for(var key=-1, i=1; (key=!o['e1'+i]||(key<0&&!o['e0'+i])?i:key) && o['e0'+i]; ++i)
if(o['e0'+i]===type && o['e1'+i]===fn)
return 0;
o['e0'+key] = type;
o['e1'+key] = fn;
o.attachEvent('on'+type, o['e2'+key]=function(){o['e1'+key](window.event);});
}
}
function removeEvent(o, type, fn) {
if(o.removeEventListener)
o.removeEventListener(type, fn, false);
else {
for(var i=1; o['e0'+i]; ++i)
if(o['e0'+i]===type && o['e1'+i]===fn) {
o.detachEvent('on'+type, o['e2'+i]);
delete o['e1'+i];
delete o['e2'+i];
break;
}
}
}
Als iemand een fuckin' 2pk'tje komt kopen, smeer je hem toch ook geen Range rover sport full option aan...
Nee je hebt gelijk, tenzij die persoon in de toekomst nog goed gebruik zou kunnen maken van die Range Rover

.
Ik heb die van Tino nog niet gezien, heb je een link?