
こんにちは。
最近、サーバーを借りてホームページを作りはじめた初心者なのですが、どなかた教えて下さいm(_ _)m
↓formでselectを使ったプルダウンメニューを設置しました。
<select id="area" name="area" onchange="changeA();">
<option value="1">海</ottion>
<option value="2">山</option>
</select>
このプルダウンメニューを触ると、Javascriptの制御で、海の項目が選択されると海関連の情報が表示され、山の項目が選択されると山関連の情報が表示されるページを作りました。
↓Javascriptソース
function changeA(){
if(document.getElementById('area')){
id = document.getElementById('area').value;
if(id == '1'){
document.getElementById('sea1').style.display = "";
document.getElementById('sea2').style.display = "";
document.getElementById('mnt1').style.display = "none";
document.getElementById('mnt2').style.display = "none";
}else if(id == '2'){
document.getElementById('sea1').style.display = "none";
document.getElementById('sea2').style.display = "none";
document.getElementById('mnt1').style.display = "";
document.getElementById('mnt2').style.display = "";
}
}
}
window.onload = changeA;
という感じです。
このような制御のプルダウンメニューを同じページにもうひとつ配置したところ、ページをブラウザの更新ボタンで更新したりすると、関係ない項目などが表示されるようになってしまいました。
原因を調べるために検索をしてみたところ、window.onloadを2つ実行させるには特別なことが必要とのことでしたが、どうすればよいのかが全然わかりません。
どなたか教えてくれないでしょうか?
お願いします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
function attach(obj,eve,func){
if(obj.attachEvent){
obj.attachEvent('on'+eve,func);
}else{
obj.addEventListener(eve,func,false);
}
}
attach(window,'load',function(){
alert(1);
});
attach(window,'load',function(){
alert(2);
});
attach(window,'load',function(){
alert(3);
});
No.4
- 回答日時:
/*@if (@_jscript) attachEvent ('on' + @else@*/ addEventListener (/*@end@*/
'load', function (evt) {
/*@if (@_jscript) detachEvent ('on' + @else@*/ removeEventListener (/*@end@*/
'load', arguments.callee, false);
func1.call(this, evt);
func2.call(this, evt);
//さいしょからここに。
}, false);
/*@if (@_jscript) attachEvent ('on' + @else@*/ addEventListener (/*@end@*/
'load', function (evt) {
/*@if (@_jscript) detachEvent ('on' + @else@*/ removeEventListener (/*@end@*/
'load', arguments.callee, false);
func3.call(this, evt);
func4.call(this, evt);
}, false);
とか
No.3
- 回答日時:
試しに書いてみたのですが、これでも動作しました。
window.onload = function(){
alert(1);
}
var _onload = window.onload;
window.onload = function(){
(_onload)?(_onload)():0;
alert(2);
}
IE7とforefox3で動作確認しました。
No.2
- 回答日時:
window.onload = changeA;
~~~
window.onload = changeB;
みたいにしているのでしょうか?
これだと上書きされてしまうので、うまくいきません。
手っ取り早くやるなら、1行にして
window.onload = function(){ changeA(); changeB(); }
みたいにして、連続して書けば、順に実行されます。
複数のファンクションをちゃんと並列登録したいのであれば、
「addEventListener」とか「attachEvent」あたりを調べてみましょう。
この回答への補足
早速に回答有難うございます。
>みたいにしているのでしょうか?
はい、その通りです。
このやり方だと上書きされてしまうのですよね。。
順に実行するやり方でも問題なければ応急処置としてソースを使わせて頂きたいと思います。
>「addEventListener」とか「attachEvent」あたりを調べてみましょう。
はい、まずは調べて勉強してみようと思います。
ただ、スグには理解できなそうです…w
有難うございますm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
webページ上のTabキーの動き
-
DOM要素を削除しても、イベント...
-
codejump 模写コーディングgall...
-
Javascriptのhtml出力についてa...
-
Null またはオブジェクトではあ...
-
関数でy=g(x)のgとは何の略です...
-
javascriptで文字挿入でtoggle...
-
Excel VBA の ChangeFileAccess
-
javascript画面を自動で切り替...
-
C#で、ContextMenuStripに動的...
-
jspからjavascriptの変数引継ぎ
-
Boolean型配列中のTrueの有無を...
-
シンプルなweb版スタンプラリー...
-
functionから別のfunctionを実...
-
C#OpenCv V4にのエラーに関する...
-
マウスストーカーやクリックで...
-
onchangeイベントを使ってspan...
-
ASP+アクセスでのSQLコメントに...
-
○歳△ヶ月と×日を計算してくれる...
-
【正規表現】【javascript】CR...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XMLでのAttributeを持ったNode...
-
javascriptの基本的なことだと...
-
Latexに関する質問です。
-
onClickイベントの変更方法
-
webページ上のTabキーの動き
-
ラジオボタンでreadonlyの切替え
-
Null またはオブジェクトではあ...
-
excle VBA とweb上の検索を利用...
-
乗換案内 VBAで操作したい
-
Javascriptで定期的にF5を押す...
-
UWSCでオンクリックのボタンを...
-
mousewheelイベントについて
-
TexでΣの添え字の位置直し
-
JavaScript window.openで開く...
-
LaTeX:数式を等号揃えにする方法
-
DOM要素を削除しても、イベント...
-
removeEventListenerの必要性
-
IE11 javascriptについて
-
ダブルでコンボボックスについ...
-
クリッカブルマップのリンク部...
おすすめ情報