script cross browser laten werken

Status
Niet open voor verdere reacties.

yammaski

Gebruiker
Lid geworden
9 mrt 2005
Berichten
284
Dit scriptje werkt in IE9, FF en Chrome.
In IE8 werkt het als je 'class' verandert naar 'className'.
Is het mogelijk om deze allebei samen toch te laten werken ?
Het is de bedoeling dat bij het bij het bovenste radiotype "bovenste" groen is en "onderste rood.
Bij het onderste radiotype net andersom.

[JS]
function no_yes()
{
if (document.getElementById('Eigentekst').checked)
{
document.getElementById('bovenste').setAttribute('class','textfield_Boven');
document.getElementById('onderste').setAttribute('class','textfield_Onder');
}
else
{
document.getElementById('onderste').setAttribute('class','textfield_Boven');
document.getElementById('bovenste').setAttribute('class','textfield_Onder');
}
}
[/JS]

Testpagina


Groeten,
Yammaski.
 
Alvast bedankt.
Ik heb een heleboel geprobeerd ... tevergeefs, of ok doe nog iets verkeerd.


Groeten,
Yammaski.
 
Hoi Yam,
Kan je het niet gewoon doen met de styles rechtstreeks in het script?
[JS]function no_yes(){
if (document.getElementById('Eigentekst').checked)
{
document.getElementById('bovenste').style.backgroundColor="green";
document.getElementById('onderste').style.backgroundColor="red";
}
else
{
document.getElementById('bovenste').style.backgroundColor="red";
document.getElementById('onderste').style.backgroundColor="green";
}
}[/JS]
Maar het valt me op dat in de html-code van je testpagina twee id's/names "Eigentekst" staan, en ik kan me voorstellen dat browsers daar tegen protesteren.
Dan zal het id="Eigentekst" en id="Anderetekst" moeten worden.

Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
Bedankt ... ik had het net opgelost met :

[JS]function noyes(yn){
document.getElementById('bovenste').className=yn?'textfield_Boven':'textfield_Onder';
document.getElementById('onderste').className=yn?'textfield_Onder':'textfield_Boven';
}[/JS]

Maar het valt me op dat in de html-code van je testpagina twee id's/names "Eigentekst" staan, ...

Bij radiobuttons moet de "name" hetzelfde zijn, ik had ook de "id" hetzelfde. Heb het aangepast.:o


Groeten,
Yammaski.
 
Ja, keurig: met omschakelen van de className kan het ook.
  • Opera schijnt het dan langzamer te doen dan met een rechtstreekse style, zegt quirksmode (in ieder geval bij Opera 9.5b), maar voor de andere browsers is dit de snelste methode.

Nu denk ik niet dat Opera er veel last van zal hebben, want bij de Quirksmode benchmark-test worden er 1700 elementen van een andere className voorzien, en bij jou maar twee. :)

Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan