開閉されたcategoryのidをJSで取得したい。
現状では、
console.log(id); で ランダムなidが取得されてしまう。
また、同じデータが3回表示されている。
開閉されたときのidを取得したい。
categoryテーブル(仮)
id name body
a1a 動物 犬
b1b 乗り物 飛行機
b2b 乗り物 車
b3b 乗り物 船
c1c 食べ物 りんご
view
1<div class="accordion" id="accordion" role="tablist" aria-multiselectable="true"> 2 <div class="card"> 3 <div class="card-header"> 4 <?=h('カテゴリ'); ?> 5 </div> 6<?php 7foreach ($category as $ca) { 8 <div class="card-header bg-white" role="tab" id="<?=h($ca->id); ?>"> 9 <a class="text-body d-block collapsed" data-toggle="collapse" href="#category<?=h($ca->id); ?>" role="button" aria-expanded="false"> 10 <div class="d-inline"><?=h($ca->name); ?></div> 11 </a> 12 </div><!-- /.card-header bg-white --> 13 <div id="category<?=h($ca->id); ?>" class="collapse" role="tabpanel" data-parent="#accordion"> 14 <div class="mx-3"> 15 <div class="d-inline"><?=h($ca->body); ?></div> 16 </div> 17 </div> 18<?php 19} 20?> 21 </div><!-- /.card --> 22</div><!-- /#accordion -->
JS
1$(function() { 2 $('div').on('shown.bs.collapse',function() { 3 // 二通り行ってみた。 4 var id = $('a[class="text-body d-block collapsed"]').attr('href'); 5 6 console.log(id); 7 8 // $.ajax({ 9 // 処理 10 }); 11}
尚、JS
$(function() {
$('#categorya1a').on('shown.bs.collapse',function() {
で取得できるが、データが増えたとき、JSに追加していくなんてことは出来ないため、他の方法を模索しています。
あなたの回答
tips
プレビュー