- ベストアンサー
selectで項目を選択した時に発生するイベント?
こんにちは,よろしくお願いします。 教えて!の質問をする時,投稿カテゴリーを入力しますが,selectオブジェクトの項目を選択した時に,次のメニュー項目が表示されるようなページについて教えてください。 試しに,javascriptのイベントハンドラonchangeやonclickでやってみましたがうまくいきませんでした。 教えて!の投稿カテゴリーについて解説していただくか,または,selectを選択した時に発生するイベントについて教えてください。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>その後に続くかっこは書かない決まりになっていますが カッコを付けないケースは関数をオブジェクトとして扱っています。 オブジェクトですから引数とかありません。 データの引渡しはグローバル変数をつかったり、コンストラクタ関数にしてインスタンス変数を利用したりします。 また元の関数をいじりたくなければ、引数を渡すための関数を用意したりします。この辺りをどうするかは具体例がないと私にはうまく説明できません。 Javascriptの「外部ファイル化」といえば単純にページ内のscript文の中身のコードを別ファイルに書いておいて、src属性で指定して読み込む事をいいます。 イベントハンドラの記述場所を移したりするのは「外部ファイル化」とはまた違います。 ※HTMLとの分離、とかいうのかな。。 マニュアルのありかについてはJavascriptそのものであれば http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ Javascriptで(X)HTMLを扱う場合のインターフェースを扱ったものは http://www2u.biglobe.ne.jp/%7Eoz-07ams/prog/index.html とかでしょうか。正直まとまって見やすいものは知らないです。 また、(主にIEですが)ブラウザによって実装状況が異なるので正式なドキュメントだけではどうにもならないのも事実です。 単語を連ねて検索して調べる場合が多いです。
その他の回答 (2)
- steel_gray
- ベストアンサー率66% (1052/1578)
#1です。 >外部ファイルとして保存すると~動いてくれませんでした 外部ファイル化する事で起こりやすい問題というのは特別あるとは思えません。外部ファイル化する前は動いているのでしょうか?? どちらにせよ、Firefox+Firebugで調査したり、古来からの手法でいえばalertを挿入するなどして、問題を調べて解決していけばよいかと思います。
お礼
またまた,ありがとうございます。 そうなのですか?またひとつ,勉強になりました。 ただ,外部ファイルに関して私は,ひとつ疑問に思っていることがあります。それは,引数の引渡しに関してです。 外部ファイルにしたとき,イベントハンドラも外部ファイルの中に記述しますが,このとき,呼び出す関数の名前のみ指定し,その後に続くかっこは書かない決まりになっていますが,かっこを書かないでどのようにして引数を関数に引き渡すのでしょうか?このような指定方法の違いなどから,内部にコードを記述した場合と外部ファイルにした場合とで違いはないのかなと疑問に感じていました。ご存知のことがあれば,教えてくださいお願いします。 このような内容のことは,どの解説書にも書いていませんでした。PHPやPEAR,MySQLなどはネット上に,マニュアルを持っていますが,javascriptに,そのようなページは存在するのでしょうか?
- steel_gray
- ベストアンサー率66% (1052/1578)
教えて!の投稿カテゴリーの部分もそうですが、 onchange を利用します。 「連動 select」 「絞込み select」 のようなキーワードで検索すればサンプルや解説がみつかります。
お礼
steel_grayさんありがとうございます。 早速検索して,ヒットしたページから入手したコードをいろいろと試してみました。 確かに,イベントハンドラonchangeで動いていました。しかし,これらのコードを外部ファイルとして保存すると,onchangeはうまく動いてくれませんでした。外部ファイル化することで,何か不具合を生じているらしいと想像されます。何がおかしいのでしょうか?もし,お気付きの点がありましたら教えてください。お願いします。
お礼
steel_grayさんいろいろとありがとうございました。 イベントハンドラの記述場所は,もとのファイルの中でも良かったのですね。私の持っている解説書には,外部ファイルの中に記述する例しかなかったものですから,必ずこうしなければならないものと思っておりました。大変お世話様でした。ありがとうございました。また,何かありましたら,よろしくお願いします。