• ベストアンサー

複数のfunctionをonclickで実行するには?

こんばんは。 複数のfunctionを実行するにはどうしたらいいんでしょうか? 後、追加でなんですが、areaにhref属性を使わず(#を指定すると、ページの上に戻ってしまうため)にポインタを指(リンクに乗せたときのやつです)にするにはどうすればいいんでしょうか? インラインフレーム1 <script> <!-- function change1(picname) { parent.frames['インラインフレーム2'].document.getElementById("ID1").src = picname; } function change2(picname) { parent.frames['インラインフレーム2'].document.getElementById("ID2").src = picname; } ・・・ function change3(picname) { parent.frames['インラインフレーム2'].document.getElementById("ID8").src = picname; } //--> </script> 上のfunctionを複数実行したいんです。(全てではありません) <map name=""> <area shape="rect" coords="0,0,0,0" alt="" onclick="change1('ファイル')"> ・・・ <area shape="rect" coords="0,0,0,0" alt="" onclick="change8('ファイル')"> </map> インラインフレーム2 <div style="position: absolute; top: 0px; left: 0px; z-index: 0;"><img src="ファイル" id=ID1 alt="" border="0"></div> <div style="position: absolute; top: 0px; left: 0px; z-index: 1;"><img src="ファイル" id=ID2 alt="" border="0"></div> <div style="position: absolute; top: 0px; left: 0px; z-index: 2;"><img src="ファイル" id=ID3 alt="" border="0"></div> ・・・ <div style="position: absolute; top: 0px; left: 0px; z-index: 8;"><img src="ファイル" id=ID8="0"></div> どうでしょう? 自分なりに試してみたんですが、成功しませんでした。(onclickにいっぱいくっつけたりとか・・・) どうかお願いします。

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

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

簡単にするために、まず、functionもまとめてしまいましょう。 現状では、画像のファイルパスが引数になっていますが、変更するエレメントの指定も引数にしてしまえば、以下のひとつで済んでしまいます。 function change0(idn.picname){ parent.frames['インラインフレーム2'].document.getElementById(idn).src = picname; } 呼び出す側は onclick="change0('ID1','ファイル')" などとなります。 処理を2種類以上行いたい場合は、  onclick="change0('ID1','ファイル1'); change0('ID2','ファイル2');" などのようにしてあげればよいです。 他にもいろいろ方法は考えられるけれど、一例です。 (関係ないけど、質問文はいろんなところが全角文字だけど、  それは質問文用ということですよね?)

mochikimuc
質問者

お礼

functionのまとめかたも教えていただいてとてもうれしいです! ちょっとごちゃごちゃしていたのがきになっていたので・・・。 複数処理はカンマで区切るんですね!しっかりと覚えておきます。 >>(関係ないけど、質問文はいろんなところが全角文字だけど、  それは質問文用ということですよね?) そうですwあまり気にしないでくださいませ。 本当にありがとうございました!

その他の回答 (1)

  • chara0-m
  • ベストアンサー率50% (3/6)
回答No.1

<area href="javascript: void(0)" shape="rect" coords="0,0,0,0" alt="" onclick="change1('ファイル'),change2('ファイル'),change3('ファイル')"> 複数のfunctionは、カンマ区切りで実行されます! リンクさせたくないのであれば 上にもかきましたが href="javascript: void(0)" これで大丈夫ですよ!!

mochikimuc
質問者

お礼

ありがとうございます! カンマで区切るだけだったんですね・・・w 問題なく動きましたよ!本当にありがとうございました!!

関連するQ&A

  • jQueryでn秒後に要素を最後に移動

    $("#top_banner").append('<div style="width:245px; position:absolute; top:0px; left:0px;" class="banner banner2"><img src="01.jpg" width="100%" alt="" /></div>'); $("#top_banner").append('<div style="width:245px; position:absolute; top:0px; left:245px;" class="banner"><img src="02.jpg" width="100%" alt="" /></div>'); $("#top_banner").append('<div style="width:245px; position:absolute; top:0px; left:490px;" class="banner"><img src="03.jpg" width="100%" alt="" /></div>'); $("#top_banner").append('<div style="width:245px; position:absolute; top:0px; left:0px;" class="banner banner1"><img src="04.jpg" width="100%" alt="" /></div>'); $("#top_banner").append('<div style="width:245px; position:absolute; top:0px; left:245px;" class="banner"><img src="05.jpg" width="100%" alt="" /></div>'); $("#top_banner").append('<div style="width:245px; position:absolute; top:0px; left:490px;" class="banner"><img src="06.jpg" width="100%" alt="" /></div>'); $(".banner").click(function(){ $(this).prependTo("#top_banner"); }); $(".banner1").delay(1000).prependTo("#top_banner"); $(".banner2").delay(2000).prependTo("#top_banner"); <div style="width:750px; background-color:#808080; height:90px; padding-top:6px;"> <div style="width:735px; margin:auto; position:relative;" id="top_banner"> </div> </div> 上記のように記述し、n秒後に自動でバナーが切り替わるプログラムを作成しようしましたが、 うまく動作しません。 クリックすると切り替わるので、その要領で「delay(1000).prependTo("#top_banner")」と記述しました。 1秒後に画像が切り替わるかなと思いましたが、動作しませんでした。 delayはprependToには効かないのでしょうか。 また、上記ソースをもう少し完結にまとめることは可能でしょうか。

  • ウィンドウの縮小に合わせて変化させるには?

    WEBデザインの質問です。 添付画像のようなものを作りたいのですが、ウインドウの幅を小さくした時に、 自動的にそれに合わせて画像も小さくなってもらいたのですができません。 どのようにhtml,cssを書いたらいいですか? 画像4の上に、画像1,2,3があって、背景、画像1,2,3がメニュー(後で画像にリンクを追加したい)のようなイメージです。 そこで今、画像4は縮小に合わせて一緒に縮んでくれるのですが、 画像1,2,3は色々試してみたのですが変化がありません。 html↓ <body> <article> <div class="relative"> <img src="/../../画像4.gif" class="img-responsive" alt="" /> <img src="/../../画像1.gif" alt="" class="absolute" /> <img src="/../../画像2.gif" alt="" class="absolute2" /> <img src="/../../画像3.gif" alt="" class="absolute3" /> </div> </article> </body> CSS↓ @charset "utf-8"; .img-responsive { display: block; max-width: 100%; height: auto; } .relative { position: relative; } .absolute { position: absolute; top: 515px; left: 185px; } .absolute2 { position: absolute; top: 515px; left: 535px; } .absolute3 { position: absolute; top: 515px; left: 888px; } 初めてhtmlを書いているので、変な質問をしていたらすみません。 お早めな回答をいただけると助かります。 よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • htmlについて教えてください

    サイトを一から作っているのではなく、 ショッピングサイトの商品ページの一部分を htmlタグを使って作っています。 macで確認するとレイアウトは問題なくきれいに見れるのですが、 windowsで確認すると画像やテキストが崩れています。 これはなぜなのでしょうか? このような感じで記述していました。 画像の上に画像を重ねて表示し、テキストをその上に表示したいのですが... <div style="position: relative;"><div align="center"> <img src="http://○○○.jpg" alt=""></div> <div style="position:absolute;left:40px;top:40px"> <b>テキスト</b></div> <div style="position:absolute;left:380px;top:100px;width:240px;"> テキスト</div> <div style="position:absolute;left:60px;top:100px"> <img src="http://○○○.jpg"></div> <div style="position:absolute;left:370px;top:22px"><img src="http://○○○.jpg"></div> </div></div> htmlの知識がほとんどないので、 なるべく易しく説明していただければ有り難いです・・・。 よろしくお願い致します。

  • CSSのdivで、ページ全体をセンタリング出来ない

    質問させて頂きます。 <style type="text/css"> #contena { margin-right: 10px; margin-left: 10px; text-align: center; height: 900px; width: 950px; } </style></head> というように、全体をdivで囲んだにもかかわらず、何故かセンタリング出来ません。 最も簡単に、このページをセンタリングするには、どうすればよいでしょうか? ホームページビルダーで「どこでも配置モード」で作ったものを、dreamweaverで作り直す場合に該当します。 下記にHTMLを記載しておきます。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta name="IBM:HPB-Input-Mode" content="mode/flm; pagewidth=750; pageheight=900"> <meta name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 14.0.8.0 for Windows"> <title>タイトル</title> <style type="text/css"> #contena { margin-right: 10px; margin-left: 10px; text-align: center; height: 900px; width: 950px; } </style></head> <body background="blue_p7b.gif"> <div id="contena"> <div style="top : 0px;left : 20px; position : absolute; z-index : 20; " id="Layer22"><img src="anim.gif" width="373" height="93" border="0" alt="ようこそ"></div> <div style="top : 18px;left : 575px; position : absolute; z-index : 2; " id="Layer4"><a href="http://www.dodgeball.or.jp/"><img src="jdba1.gif" border="0" width="106" height="30"></a></div> <div style="top : 60px;left : 143px; position : absolute; z-index : 1; " id="Layer1"><img src="logo111.gif" width="488" height="69" border="0" alt="リンク"></div> <div style="top : 219px;left : 317px; position : absolute; z-index : 27; width : 580px; height : 51px; " id="Layer28"> <p><font color="#0000ff" size="+2">コンテンツ</font></p> </div> <div style="top : 161px;left : 647px; position : absolute; z-index : 22; " id="Layer23"></div> <div style="top : 255px;left : 284px; position : absolute; z-index : 28; " id="Layer2"><img src="frendlyindx.gif" width="546" height="410" border="0"></div> <div style="top : 216px;left : 652px; position : absolute; z-index : 23; " id="Layer24"></div> <div style="top : 304px;left : 50px; position : absolute; z-index : 26; " id="Layer27"></div> <div style="top : 754px;left : 47px; position : absolute; z-index : 19; width : 707px; height : 154px; " id="Layer21"><iframe frameborder="1" src="saishijoho.html" width="709" height="150" scrolling="AUTO"></iframe></div> <div style="top : 953px;left : 40px; position : absolute; z-index : 7; " id="Layer9"><a href="taikaikekka.html"><img src="button41.gif" width="57" height="54" border="0" alt=" "></a></div> <div style="top : 659px;left : 48px; position : absolute; z-index : 6; " id="Layer8"><img src="logo1.gif" width="194" height="65" border="0" alt="最新情報 "></div> <div style="top : 1020px;left : 34px; position : absolute; z-index : 12; </div> </body> </html> 詳しい方がいましたら、よろしくお願いします。

  • タグの修正に力をかしてください

    ホットペッパーに出てくるお店のページのバナーのように、 「アクセス」「TEL」の文字を表示させたいのですがうまくいきません。 タグの修正にちからをかしていただけないでしょうか。 以下、タグです。よろしくおねがいします。 <table width="702" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="color3" colspan="3"><img src="images/spacer.gif" alt="" width="1" height="1"></td> </tr> <tr> <td class="color3"><img src="images/spacer.gif" alt="" width="1" height="1"></td> <div style="position:relative;"><img src="images/hotpot_bannar.gif" alt="バナー" width="700" height="151"></div> <div style="position:absolute; top:70px; left:400px; color:#ffffff; font-size:10px; border:solid 1px; padding:2px;">アクセス</div> <div style="position:absolute; top:50px; left:450px; color:#ffffff; font-size:10px;>JR環状線:「福島駅」・・・</div> <div style="position:absolute; top:70px; left:450px; color:#ffffff; font-size:10px;>JR東西線:「新福島駅」・・・</div> <div style="position:absolute; top:120px; left:400px; color:#ffffff; font-size:10px; border:solid 1px; padding:2px;">TEL</div> <div style="position:absolute; top:120px; left:450px; color:#ffffff; font-size:10px;>06-****-****</div> <td class="color3"><img src="images/spacer.gif" alt="" width="1" height="1"></td> </tr> </table>

    • ベストアンサー
    • HTML
  • スタイルシートのレイヤーに乗せた画像を動的に表示する方法

    <div id="test" style="position=absolute; top=400px; left=200px; z-index=10;"><img src="gazou.gif"></div> 上記を動的に表示するために以下の方法を考えました var element = document.createElement('div'); element.id = "test"; element.style = "position=absolute; top=400px; left=200px; z-index=10;"; element.innerHTML = '<img src="gazou.gif">'; var objBody = document.getElementsByTagName("body").item(0); objBody.appendChild(element); しかしこれだと、element.style = "position=absolute; top=400px; left=200px; z-index=10;"; の部分がまずいらしく動作しません。 どのようにすればよいでしょうか。 よろしくお願いします。

  • センタリングのHTMLの挿入場所

    お世話になっております。 前回の質問の追加をしようとしたのですが、うまくできず、新たにスレッドを立てました。すみません。 以下のHTMLは横並びに写真を載せたもの(数行あります)です。(上部に文章を載せるための式がありますが、カットしています。)このプログラムのどこにセンタリングの式を入れたらいいのか、私の知識ではわかりませんでした。またご教示もらえると助かります。 よろしくお願いします。 </DIV> <DIV style="top : 1313px; </DIV> <DIV style="top : 1473px;left : 327px; position : absolute; z-index : 3; " id="Layer8"><IMG src="button2.gif" width="81" height="35" border="0" alt="Back"></DIV> <DIV style="top : 1060px;left : 21px; position : absolute; z-index : 8; width : 698px; height : 123px; " id="Layer6">&nbsp;  <IMG src="DSC_19711.jpg" border="0" width="160" height="106"> <IMG src="DSC_20401.jpg" border="0" width="160" height="106"> <IMG src="DSC_20541.jpg" border="0" width="160" height="106"> <IMG src="DSC_21231.jpg" border="0" width="160" height="106"></DIV> <DIV style="top : 883px;left : 15px; position : absolute; z-index : 7; width : 649px; height : 165px; " id="Layer5">&nbsp;   <IMG src="DSC_19311.jpg" border="0" width="160" height="106"> <IMG src="DSC_19381.jpg" border="0" width="160" height="106"> <IMG src="DSC_19411.jpg" border="0" width="99" height="149"> <IMG src="DSC_19631.jpg" border="0" width="160" height="106"></DIV> <DIV style="top : 572px;left : -3px; position : absolute; z-index : 5; " id="Layer3"> <DIV> <TABLE border="0" cellpadding="15" width="725" height="147"> <TBODY> <TR> <TD height="113" width="549" align="center" style="position : relative;table-layout : auto;">&nbsp;   <IMG src="DSC_17481.jpg" border="0" width="160" height="106"> <IMG src="DSC_18051.jpg" border="0" width="160" height="106"> <IMG src="DSC_18151.jpg" border="0" width="160" height="106"> <IMG src="DSC_18351.jpg" border="0" width="160" height="106"></TD> </TR> </TBODY> </TABLE> </DIV> </DIV> <DIV style="top : 729px;left : 12px; position : absolute; z-index : 6; " id="Layer4"> <DIV> <TABLE border="0" cellpadding="15" width="725" height="147"> <TBODY> <TR> <TD height="113" width="549" align="center" style="position : relative;table-layout : auto;">&nbsp;<IMG src="DSC_18421.jpg" border="0" width="160" height="106"> <IMG src="DSC_18641.jpg" border="0" width="160" height="106"> <IMG src="DSC_18941.jpg" border="0" width="160" height="106"> <IMG src="DSC_19201.jpg" border="0" width="160" height="106"></TD> </TR> </TBODY> </TABLE> </DIV> </DIV> </BODY>

  • 画像を重ねて表示する方法を知りたいです。

    おせわになっております。 下記のようなソースを作りました。 ------------------------------------------------- <div style="position: relative;"> <img src="sideback.gif" width="182" height="812" alt="sideback"> <div style="position: absolute; top: 30px; left: 15px;"> <span style="position:absolute; top:10px; left:10px"><img src="sidemanu-canner.gif" alt="メニュー"> </span> </div> </div -------------------------------------------------- 画像を重ねたいんですが、firefoxでプレビューすると (IEでも同じです。) 下の画像(背景)の上に上の画像が表示されるはずだった場所に四角い3つぐらい色のついたマークがでて (IEは小さな資格に×マーク) 上に表示されるはずだった画像が表示できません どうしたらいいでしょうか?

    • ベストアンサー
    • HTML
  • jqueryで画像切り替え

    この場をお借りして教えて頂ければ幸いです。 jqueryについて、今現在添付画像のようなサムネイルをマウスオーバーしますと、 メイン画像が切り替わるようなものをjjqueryを使用して制作しました。 ここから、setIntervalを使用して画像が何もしなければ勝手に切り替わるように、 またマウスオーバーをしている際は切り替わらないように、そしてマウスアウトしたら そこの画像から順にsetIntervalが開始されるようにしたいと思っております。 そこの作業が出来ず困っておりまして、是非ともお教え頂ければと思います。 今現在のhtml , css , jsの方は記載しておきます。※reset.cssは除きます。 <body> <div id="wrap"> <div id="sec1"> <div id="photoBox"> <ul id="photo"> <li><img src="img/plan1.jpg" alt="食1" /></li> <li><img src="img/plan2.jpg" alt="食2" /></li> <li><img src="img/plan3.jpg" alt="食3" /></li> </ul> <ul id="thumb"> <li class="first"><img src="img/plan1_s.jpg" alt="" /></li> <li><img src="img/plan2_s.jpg" alt="" /></li> <li><img src="img/plan3_s.jpg" alt="" /></li> </ul> </div>     </div> </div> </body> -------------------------------------------------------------------- div#wrap{ width:394px; margin:0 auto; } div#photoBox{ width:394px; height:391px; padding:40px 0; border-bottom:1px solid #CCC; } div#photoBox ul#photo{ width:394px; height:295px; padding-bottom:5px; position:relative; } div#photoBox ul#photo li{ width:394px; height:295px; display:block; position:absolute; top:0; left:0; } div#photoBox ul#thumb{ width:394px; height:91x; position:relative; } div#photoBox ul#thumb li{ float:left; padding-left:5px; } div#photoBox ul#thumb li.first{ padding-left:0; } --------------------------------------------------------- (function(){ var photo = $('#photo').find('li'); var thumb = $('#thumb').find('li'); photo.hide().eq(0).show(); thumb.hover(function(){ $(this).stop().fadeTo('fast', 0.6); photo.stop().fadeTo('fast', 0) .eq($(this).index()) .stop().fadeTo('fast', 1); }, function(){ $(this).stop().fadeTo('fast', 1); }); })

  • 同HTML内で複数のJavaScriptを設置

    ●JavaScriptを使用して、再生時間の異なったスライドショーを同時再生したい (js1とjs2の画像を重ねて、アナログ時計が動くようなスライドショーにしたい) ●現状:どちらか一方の画像しか動かない(ソースの後に記述したjsのみ動く) 調べたところによると、jQueryを使用すれば可能との事で色々なサイトで調べ、 試行錯誤したのですがうまく動きません。 (参考にさせて頂いたサイト様:http://black-flag.net/jquery/20110525-3120.html) jQueryを使用しなければ、同時再生はできないのでしょうか? そうなると、以下のHTML、CSSなどを根本から変える必要があるように思っています。 ※実際に上記のサイトを参考に行ってはみたのですが・・・力不足で解決できませんでした。 初歩的な質問かとは思いますが、ご指摘頂ければと思います。 よろしくお願い致します。 _____________   XHTML    ____________________ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>ポートフォリオ</title> <link href="base.css" rel="stylesheet" type="text/css" media="all" /> <link href="top.css" rel="stylesheet" type="text/css" media="all" /> <script type="text/javascript" src="portfolio.js"></script> <script type="text/javascript" src="portfolio2.js"></script> <noscript> JavaScript対応ブラウザで表示してください。 </noscript> </head> <body onload="setTimeout('timerImg()', 3000);"> <body> <div id="header"> <img src="portfolio/logo2.png" alt="ヘッダー"></div> <div id="wrapper"> <div id="photo1"> <img name="img/1.png" src="img/1.png" alt="長針"></div> <div id="photo4"> <img name="img2/1.png" src="img2/1.png" alt="短針"></div> <div id="photo2"> <img src="portfolio/tokei.under.png" alt="時計柄"></div> <div id="photo3"> <img src="portfolio/tokei.logo.png" alt="ロゴ"></div> <ul id="contens-nav">  <li id="home"><a href="portfolio.html">HOME"</a></li> </ul> <ul id="contens-nav2">  <li id="works"><a href="works.html">WORKS"</a></li> </ul> <ul id="contens-nav3">  <li id="about"><a href="about.html">ABOUT"</a></li> </ul> <ul id="contens-nav4">  <li id="contact"><a href="contact.html">CONTACT"</a></li> </ul> </div> </body> </html> _____________   CSS(base)   ___________________ @charset "UTF-8"; * { margin:0; } body { font-family:"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", sans-serif; line-height: 1.5; } div#wrapper { position:relative; width: 844px; left: 50%; margin-left: -422px; } div#photo1 { position: absolute; left: 50%; height: 100%; width: 844px; margin-left: -422px; z-index: 3; } div#photo4 { position: absolute; left: 50%; height: 100%; width: 844px; margin-left: -422px; z-index: 2; } div#photo2{ position: absolute; left: 50%; height: 100%; width: 844px; margin-left: -422px; z-index: 1; } div#photo3{ position: absolute; left: 50%; height: 100%; width: 844px; margin-left: -422px; z-index: 4; } _____________   js 1   ____________________ // JavaScript Document <!-- var photo = new Array("img2/1.png", "img2/2.png", "img2/3.png","img2/4.png", "img2/5.png", "img2/6.png","img2/7.png", "img2/8.png", "img2/9.png","img2/10.png", "img2/11.png", "img2/12.png"); var i = 0; function timerImg () { if(document.images['img2/1.png'].complete) { i++; if(i >= photo.length) i = 0; document.images['img2/1.png'].src = photo[i]; } setTimeout("timerImg()", 12000); } //--> _____________   js 2   ____________________ // JavaScript Document <!-- var photo = new Array("img/1.png", "img/2.png", "img/3.png","img/4.png", "img/5.png", "img/6.png","img/7.png", "img/8.png", "img/9.png","img/10.png", "img/11.png", "img/12.png"); var i = 0; function timerImg () { if(document.images['img/1.png'].complete) { i++; if(i >= photo.length) i = 0; document.images['img/1.png'].src = photo[i]; } setTimeout("timerImg()", 1000); } //-->

専門家に質問してみよう