• ベストアンサー

onchangeで画像の表示

大カテゴリーの画像をクリックすると中カテゴリーの画像を表示させたいと思っています。中カテゴリーの画像は大カテゴリーの画像をクリックすることにより表示されるという形にしたいです。また大カテゴリーの画像を再度クリックすると中カテゴリーの画像が消えるというのはできるでしょうか? これってonclickとonchangeですか?教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>これってonclickとonchangeですか? やり方はいろいろ考えられますがonclickだけでいけるんじゃないでしょうか? 中カテゴリをグルーピングして以下のような処理をすると汎用性が あります。 <script> function hoge(obj){ var n=obj.nextSibling; while(n){ if(n.nodeName=="DIV") break; n=n.nextSibling; } n.className=n.className==""?"hide":""; } </script> <style> .hide{ display:none; } </style> <div> <img src="1.jpg" onclick="hoge(this)"> <div class="hide"> <img src="2.jpg"> <img src="3.jpg"> <img src="4.jpg"> </div> </div> 大カテゴリー・中カテゴリーというと小カテゴリーもあるんですよね? イメージがわかないので具体的な仕様をもうすこしつっこんで 書いた方がよいでしょう。

eccschool
質問者

お礼

すみません。アホな補足を書き込んでしまいました。 うまくいきました。 ありがとうございます。

eccschool
質問者

補足

ご返答ありがとうございます。 大カテゴリー1つの場合に動作が確認できました。 複数の大カテゴリーがあり、thisの部分に異なる数字を与えて実行したところうまくいきません。そんな簡単なものではないんですかね!? お恥ずかしい限りです。

その他の回答 (3)

noname#84373
noname#84373
回答No.4

「大・中・小!」と言葉で言われてもチンプンカンプン! 実際のコードを見せてくれれば、回答が早いのでは?

noname#84373
noname#84373
回答No.3

yambejpさんの書いたコードでは、this のまま使います わざわざ画像の次にある<div>タグを探して、そこを 書き換えるように書いてくださってますよ!

eccschool
質問者

補足

yambejpさんのコードでうまくいきました。 ご指摘ありがとうございます。 しかしながら、大カテゴリを選択して小カテゴリーを選択すると小カテゴリーのツリーが閉じてしまいます。 小カテゴリーを選択しても小カテゴリーのツリーを閉じない方法はないでしょうか? (大カテゴリと小カテゴリーの2カテゴリーしかない仕様です。)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

いまひとつ、イメージがよくつかめませんが、 要は、中カテゴリーの画像の表示/非表示をトグルで行えればよいということでしょうか? 表示/非表示をどのように切り替えるかが不明ですが、とりあえずdisplay:block/noneでよいとするなら、大カテゴリーのonclickイベント処理で、中カテゴリーの表示状態を現状と反転させればよいと思われます。 例えば、 eDsp=document.getElementById( ~).style.display; //←中カテの画像 eDsp=(eDsp=='none')?'block':'none'; みたいな感じ 画像が複数あるときは、まとめておいて行うのが簡単かと…

関連するQ&A

  • onChangeだと思うのですが・・・

    <FORM> <SELECT> <OPTION selected>タイトル</OPTION> <OPTION>タイトル2</OPTION> <OPTION>タイトル3</OPTION> </SELECT> <input type="button" value="ボタン" onClick="location.href='mailto:xxx@xxx?subject=タイトル'"> </FORM> セレクトの選択に合わせてメールのタイトルを変えたいのですが うまくいきません。 onChangeを使うとフォームの値としては取得はできますが・・・ 上記のような場合はどうすればよいのでしょうか? 教えてください。よろしくおねがいします。 仕事の関係で至急作らなくてはいけなくなりまして、 困っています。

  • クリックで画像表示、さらに画像の一部をクリックで閉じる

    今、Javascriptを使用したページを立ち上げようと しており、以下のようなことをしたいと思っています。 (1) あるテキスト(または画像)をクリック (2) 説明用の画像が表示 (3) (2)で出た画像内の×マークをクリックすると、   その画像が消える。 イメージとしては、GOOGLEローカルのように、 マーカーをクリックすると、 説明文(画像)が出てきて、 ×を押すと閉じるといった内容です。 Javascriptのonclickとかをうまく使えば…と思うのですが、 ホントに初心者なので、分からないことだらけです。 すいませんが、教えていただけないでしょうか。

  • どうして本来の画像サイズより大きくなってしまうのでしょうか。

    JavaScriptとonClickを利用して、サムネイルをクリックすると決められた位置に新しいウインドウが表示されてその中にオリジナル画像が掲載されるようにしています。 しかし、本来の画像サイズが320×240にも関わらず、onClickで320×240に設定すると画像にピッタリのウインドウで開きません。いつも画像より小さなウインドウになってしまいます。 具体的にはonClickで330×250ぐらいの大きさにするとやっと画像を全部表示できるといった具合です。これはどうしてなのでしょうか?

  • 画像の大きさが変わってしまいます;;

    <table border="0"> <tr> <td colspan="5"> <%= image_tag '0.jpg', :id => 'myPhoto', :class =>'photoSize' %> </td> </tr> <tr> <td> <%= image_tag '00.jpg', :class => 'thumbnail', :onclick => "selectPhoto(this);" %> </td> <td> <%= image_tag '01.jpg', :class => 'thumbnail', :onclick => "selectPhoto(this);" %> </td> <td> <%= image_tag '02.jpg', :class => 'thumbnail', :onclick => "selectPhoto(this);" %> </td> <td> <%= image_tag '03.jpg', :class => 'thumbnail', :onclick => "selectPhoto(this);" %> </td> <td> <%= image_tag '04.jpg', :class => 'thumbnail', :onclick => "selectPhoto(this);" %> </td> </tr> <tr> <td> <%= image_tag '05.jpg', :class => 'thumbnail', :onclick => "selectPhoto(this);" %> </td> <td> <%= image_tag '06.jpg', :class => 'thumbnail', :onclick => "selectPhoto(this);" %> </td> <td> <%= image_tag '07.jpg', :class => 'thumbnail', :onclick => "selectPhoto(this);" %> </td> <td> <%= image_tag '08.jpg', :class => 'thumbnail', :onclick => "selectPhoto(this);" %> </td> <td> <%= image_tag '09.jpg', :class => 'thumbnail', :onclick => "selectPhoto(this);" %> </td> </tr> </table> このように、拡大領域があって、その下に小さな画像が10個ある形です。小さな画像をクリックすると拡大領域に表示するという形を作りたいのです。しかし、クリックをすると一つ目はしっかり、もともとある拡大領域に表示されるのですが、2個目をクリックするともっと大きく表示されてしまいます。画像1つ1つの元々のサイズがばらばらなのが原因だと思うのですが、ばらばらだった場合にも大きさが勝手に変更されないようにすることは可能でしょうか・・・?

    • ベストアンサー
    • CSS
  • クリックした自身の画像を別画像に入れ替えて表示

    前回質問したときに、解決したと思いましたが、動きがおかしいので 再質問します。 メニュー欄を画像にて表示し、画像クリックにて対象ページに飛ぶようになっています。 メニューをクリックした時、クリックした自身の画像を別画像に入れ替えて表示させようとしています。 onClick時に自分自身の画像を入れ替えし、リンク先が表示されるまで入れ替えた画像を表示したいのです。 下記のコードだと、クリック時、a_press.gif'は表示されず 何も表示されていない状態(背景画像)が見えてしまいます。 a_press.gif'<a href="http://www.yahoo.com/"> <img src="images/a_on.gif" onmouseover="this.src='images/a_rollover.gif';" onmouseout="this.src='images/a_on.gif';" onclick="this.src='images/a_press.gif'; this.onmouseover=null; this.onmouseout=null;"> </a> どなたかご教示いただけないでしょうか? よろしくお願いします。 IE,Firefox対応希望。

  • HPの画像が表示されません・・

    よくオークションサイトを覗くのですが、そのオークションの画像が表示されるものとされないものがあります。 ほとんどは表示されるのですが、時々画像が映らず白枠のまま表示されます。(画像が数枚ある時は1枚だけ表示して他は表示されないっていうパターンもあります) 最近、画像が表示されないっていう事が多くなってきたように感じるのですが・・ 画像が表示されなかった時、もう一度戻って再度クリックすると表示出来る時もあるのですが、どうすれば上手く画像表示する事が出来るのでしょうか? アドバイス宜しくお願いします。

  • 画像表示

    画像表示 あるウエブで画像が表示されません。いままで表示されていたのですが、赤い×がついてます。その×を右クリックして、「画像の表示」をクリックしても変わりません。表示させるにはどうすればいいのでしょうか。教えてください。

  • あることをすると画像が表示されなくなる

    私のテストしたありのままを書きます ヤフオクの検索欄で「給湯」と入れて検索します タイトルと画像 をクリック そうすると画像が表示されなくなるのです その後はリンクを開こうが別のブラウザを立ち上げようが画像が表示されません すべてのエクスプローラを閉じてからやりなおせば見れます 再度、上記のことをやると見れなくなる。といった現象なんです 最初はバグかと思ったのですが違うPCでやってもだめで 今日、知人宅でやってみてもダメなんです なぜなんでしょう?

  • 画像集、小画像をクリックすると大画像を中央表示するには?

    画像集を作ってるのですが、 テーブルの中に小さな画像の一覧があり、 クリックするとその大きな画像が表示され、 なおかつページの真ん中に表示されるものを作成中です。 自分が思うに、width=100% height=100% のテーブルの中に画像リストのテーブルを入れ テーブル名を table とするなら、 そこにある小さな画像を onclick すると document.table.location.href = picture; または document.table.src = picture; のようなイメージでテーブルと大画像を置き換えれば できると思うのですが、うまくいきません。 なにかアドバイスありますでしょうか? もちろん 写真ごとにセンター寄せの web page を作り 普通にリンクという方法もありますが、写真が増えると あまり効率が良いとは言えず。。。

  • 画像が表示されない

    画像が表示されない あるHPの画像が表示されません。画像の左上に赤で×がついて、マウスで右クリック「画像表示」をクリックしても表示されません。http://www2.ocn.ne.jp/~ze022/ です。

専門家に質問してみよう