Tengo un javascript que se supone que se ejecuta después de que se carga la ventana, pero por alguna razón, nunca se ejecuta.La función no se llama
Aquí está mi código:
function setClasses(){
document.getElementsByClassName("gchoice_35_0")[0].onclick = sedanShow;
document.getElementsByClassName("gchoice_22_0")[0].onclick = sedanShow;
document.getElementsByClassName("gchoice_34_0")[0].onclick = sedanShow;
document.getElementsByClassName("gchoice_34_1")[0].onclick = suvShow;
document.getElementsByClassName("gchoice_35_1")[0].onclick = suvShow;
document.getElementsByClassName("gchoice_22_1")[0].onclick = suvShow;
document.getElementsByClassName("gchoice_22_2")[0].onclick = vanShow;
document.getElementsByClassName("gchoice_35_2")[0].onclick = vanShow;
document.getElementsByClassName("gchoice_34_2")[0].onclick = vanShow;
}
window.onload = setClasses;
La función setClasses() no parece funcionar. Sin embargo, funciona cuando lo llamo manualmente a través de la consola de FireBug.
El código se coloca en el encabezado de mi página web.
Cualquier ayuda es apreciada.
HTML completas fragmento:
<head>
......
<script type="text/javascript">
function setClasses(){
document.getElementsByClassName("gchoice_35_0")[0].onclick = sedanShow;
document.getElementsByClassName("gchoice_22_0")[0].onclick = sedanShow;
document.getElementsByClassName("gchoice_34_0")[0].onclick = sedanShow;
document.getElementsByClassName("gchoice_34_1")[0].onclick = suvShow;
document.getElementsByClassName("gchoice_35_1")[0].onclick = suvShow;
document.getElementsByClassName("gchoice_22_1")[0].onclick = suvShow;
document.getElementsByClassName("gchoice_22_2")[0].onclick = vanShow;
document.getElementsByClassName("gchoice_35_2")[0].onclick = vanShow;
document.getElementsByClassName("gchoice_34_2")[0].onclick = vanShow;
}
function sedanShow(){
document.getElementById("sedan").style.display="inline"
document.getElementById("suv").style.display="none"
document.getElementById("van").style.display="none"
}
function suvShow(){
document.getElementById("sedan").style.display="none"
document.getElementById("suv").style.display="inline"
document.getElementById("van").style.display="none"
}
function vanShow(){
document.getElementById("sedan").style.display="none"
document.getElementById("suv").style.display="none"
document.getElementById("van").style.display="inline"
}
window.onload = setClasses;
</script>
......
en que resulta este código en su página? ¿Te importa publicar un fragmento de HTML completo que no funciona? –
Creo que setClasses se está ejecutando, ese no es el problema. Apuesto a que si pones una alerta en tu función setClasses, se disparará. Creo que es probablemente la forma en que configura su propiedad onclick. IE requiere que se establezca como una cadena, mientras que Firefox requiere que sea una función. JQuery y YUI ayudan a mitigar esto al ofrecer utilidades de eventos. Recomiendo examinar estos marcos porque ayudan a reducir una gran cantidad de caprichos de navegador cruzado con los que tienes que lidiar. – Zoidberg
¿Está alguna otra cosa configurando window.onload que anula este código? – epascarello