javascriptのonloadは1ページ一回まで

javascriptを1つのページに2つ置いたら、片方しか動かない。

試しにHTMLに書く順番を変えたら、後ろに書いたほうが動くことがわかった。

最初は、変数とか、関数が重複していると思って、いろいろ変更したが治らないので、もっと調べるとonloadが原因だとわかった。

onloadは1ページで一回しか使えないらしく、複数使うと、最後に使ったものだけが実行されるらしい。なのでonloadで複数設定していたものを1つにまとめると解決

最初は以下のような2つを別々に書いていた。

onload = init1;
var state1;

function init1() {
state1 = $(‘state1’);
itemshow1();
}

onload = init2;
var state2;

function init2() {
state2 = $(‘state2’);
itemshow2();
}

これらをまとめて

onload = init;
var state1;
var state2;

function init() {
state1 = $(‘state1’);
itemDisp1();

state2 = $(‘state2’);
itemDisp2();
}

とするとあっさり解決して動くようになった。

コメントを残す