ウィンドウのロード後に実行される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;
}
window.onload = setClasses;
setClasses()関数が実行されていないようです。しかし、FireBugのコンソールから手動で呼び出すと動作します。
コードは私のWebページのヘッダーに配置されています。
何か助けていただければ幸いです。
完全なHTMLスニペット:
<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>
......
を?動作しない完全なHTMLスニペットを投稿しても構いませんか? –
私はsetClassesが動作していると思うが、それは問題ではない。あなたのsetClasses関数にアラートを置くと、それは起動します。私はそれがおそらくあなたのonclickプロパティを設定する方法だと思う。 IEでは文字列として設定する必要がありますが、Firefoxではそれを関数にする必要があります。 JQueryとYUIはイベントユーティリティを提供することでこれを軽減します。これらのフレームワークを調べることをお勧めします。これは、対処しなければならない多くのクロスブラウザの問題を軽減するためです。 – Zoidberg
このコードを上書きしているwindow.onloadを他に設定していますか? – epascarello