メモ書き
単独では正常に動作していたのに、複数のスクリプトを読み込んだ途端、動かなくなることがよくあります。
考えられる原因として
- 単純に関数名がかぶってしまっている
- jQueryとprototypeを同時に使っている
などがありますが、最近よくはまってしまうのが、プログラムの実行順。
スクリプトA→Bという実行順なら正常なのに、B→Aになった途端動かなくなってしまう。
当たり前のことですね・・・。いやいや待ってください。
単純にプログラムの記述順に実行してくれているのならまだしも、なぜかjavascriptではまるで並列処理をしているかのように関数の処理を同時に行っている節があります。
A();
B();
という順で記述しているのに、B()処理のほうが速く終わったり、読み込むたびに処理の終了順が入れ替わるのか正常だったりダメだったり。
とりあえず、この場合は
A();
function A(){
~Aの処理~
B();
}
で一応解決します。
しかしスクリプトファイルが違う時は、こういうわけにはいかない場合があります。(勝手にほかのスクリプトを変えてしまってはいけない場合など)
その場合は、自分のスクリプトの実行開始時間をわざと遅らせましょう。(自分のスクリプトの方が後でないとダメな場合のみですが)
setTimeOut(B, 100);
まあ正直、この方法もどうかと思うんですが、とりあえずの解決をみたので、今回はこれでよし!
なにかほかにいい意見がある方は、ぜひ教えてください!m(。-_-。)m