![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
以下のコードで、
「AAA」クリックで、AAAAAAAAAが表示されます。
「BBB」クリックで、BBBBBBBBBが表示されます。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
【サンプル:http://m5011782312.k-free.net】
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7. …
<script>
$(function() {
$('a#show_hide').click(function(event){
event.preventDefault();
$('div#hide').toggle();
});
$('a#show_hide2').click(function(event){
event.preventDefault();
$('div#hide2').toggle();
});
});
</script>
<a href="#" id="show_hide">AAA</a>
<a href="#" id="show_hide2">BBB</a>
<div id="hide" class="hidden" style="display:none">
AAAAAAAAAが表示されます
</div>
<div id="hide2" class="hidden" style="display:none">
BBBBBBBBBが表示されます
</div>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
しかし「AAA」クリック後に「BBB」クリックで両方表示されてしまいます。
これを必ずどちらか一つ表示(Aが出てるときはBを消す逆も然り)にしたいのですが、どう書けばよいかわからず泣いています。
どうか教えてもらえませんでしょうか…(´;ω;`)本当に泣きながらやっています。。
No.1ベストアンサー
- 回答日時:
こんにちは
基本的には、クリックした時にそれ以外の要素を閉じる処理を入れれば良いだけと思います。
ご提示の例では、要素が2個だけですが、同じような動作をするので、個別のIDで識別するよりも共通のクラスとその順番などを利用して処理した方が簡潔に記述できるような気がしますが…
とりあえず、こんな感じではどうでしょうか?
$(function(){
$('#show_hide, #show_hide2').on('click', function(){
var id = this.id.substr(5);
$('#hide, #hide2').each(function(i, e){
if(e.id == id) $(e).slideToggle();
else $(e).slideUp();
});
});
});
>ゆっくりヌルリとアコーディオンのように出るようにとも~
具体的な動作はいろいろ考えられると思いますが、上の例ではslideUp、slideDownの動作にしてあります。
fujillin様!
めちゃくちゃにありがとうございました!!!
徹夜で寝落ちしてました…!(´;ω;`)ウゥゥ
本当に助かりました!!!
No.2
- 回答日時:
こんな感じがいいでしょう
<script src="ttp://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
$('#show_hide,#show_hide2').on('click',function(e){
e.preventDefault();
$('#'+$(this).data("target")).siblings('div').hide().end().toggle();
});
});
</script>
<a href="#" id="show_hide" data-target="hide">AAA</a>
<a href="#" id="show_hide2" data-target="hide2">BBB</a>
<a href="#" id="show_hide2" data-target="hide3">CCC</a>
<div id="hide" style="display:none">AAAAAAAAAが表示されます</div>
<div id="hide2" style="display:none">BBBBBBBBBが表示されます</div>
<div id="hide3" style="display:none">CCCCCCCCCが表示されます</div>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
<div ~ </div> で囲まれたテキ...
-
IFRAMEの表示/非表示を切り替え...
-
動的にHTMLコンテンツを吹き出...
-
変数名をどのようにつけるのが...
-
jQueryでシンプルドラッグドロ...
-
クリックで色変更後に既に変更...
-
読み込んだQRコードをフォーム...
-
jQueryのアコーディオンメニュ...
-
jQueryでクリックされた要素のi...
-
removeEventListenerについて
-
removeAttribute()メソッドで削...
-
折りたたみ式JavaScriptをcheck...
-
jQueryで同じid属性が複数あっ...
-
401エラードキュメントを401.ht...
-
前回の質問の続き
-
折りたたみ部分にアンカーでリ...
-
iframe内のリンクが飛ばないの...
-
ネストされたハッシュの値から...
-
テキストエリア内の一部の文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
createElementで作成した要素を...
-
読み込んだQRコードをフォーム...
-
console.log結果をhtmlで表示し...
-
iframe内のリンクが飛ばないの...
-
変数内容をHTML内で表示する方法
-
getElementByIdの戻り値がnull...
-
背景色を透明化
-
自働生成される<div>タグに連番...
-
複数のリンク画像を一定時間で...
-
クリックで色変更後に既に変更...
-
removeEventListenerについて
-
IFRAMEの表示/非表示を切り替え...
-
表示・非表示のスクリプトで、...
-
タブで開いてさらにタブ内をア...
-
Jquery 親要素で順番入れ替え
-
HTML id名とjavascript変数名
-
VBScriptでXMLのデータを取得す...
-
[急ぎ] videoタグで埋め込んだm...
おすすめ情報
このようなことができるのであれば別の方法でも構いません。。
納品間近のコーディングで怒られながらやっています…( ノД`)
あとシュピッ!って出るのでなくて、ゆっくりヌルリとアコーディオンのように出るようにとも言われているのですが、この際は贅沢はいいません…、が、合わせてお分かりのようであれば教えてもらえるとさらに泣いて喜びます…!