私はこれ (どうやら) まったく同じ問題がここで対処されているのを見てきましたが、解決策は単に私にとってはうまくいきません. 表示/非表示にしたい要素を選択できないようです。
次の HTML があり、いくつかの同様のアイテムが繰り返されています。
<div class="item">
<div class="titleRow">
<h3 class="yesterday">Some text</h3>
<h3 class="today">Some other text</h3>
</div>
</div> <!-- /item (table) -->
<div class="details">
<p>A long paragraph of description.</p>
</div>
そして、このJS:
$('.details').hide();
$('body.page-id-55 .titleRow').toggle(
function() {
$(this).parent().next('.details').slideDown();
$(this).addClass('close');
},
function() {
$(this).parent().next('.details').slideUp();
$(this).removeClass('close');
}
)
私の理解では、.titleRow がクリックされ、.details がその親 (.item) の次の兄弟であるため、.details をターゲットにし、.titleRow div をクリックするとロールダウンおよびロールアップする必要があります。
しかし、実際には何も起こりません。
その行を次のように変更すると
$('.details').slideDown();
それは機能しますが、もちろん .details のすべてのインスタンスがロールダウンおよびロールアップします。クリックした div の次の div をアクティブにしたいだけです。
私は何を間違っていますか?
アップデート:
andyface の素晴らしい提案があっても、クリックしてもまだアクションがありません。私もこれを試しました:
$('body.page-id-55 .titleRow').on('click', function() {
$details = $(this).parent().next('.details');
$details.show();
});
(私が思うに) すべての .details を強制的に表示するようにしますが、その場合も何も起こりません。
私のページで他の JS からの干渉の可能性はありますか?
私がこれを行うと、ツリートラバーサルが問題になるようです:
$('body.page-id-55 .titleRow').on('click', function() {
$('.details').show();
});
それらはすべて表示されます。
ロードされている他の JavaScript との競合の可能性については、正しい WordPress エンキュー メソッドを使用して functions.php を介してロードしているため、js が最後にロードされていることを少なくとも確認できます。これがヘッダー内のすべての js です - 私の 2 つ (別のページ用の 1 つ) は最後です:
<script type='text/javascript' src='http://gazeleyandgazeley.com/site/wp-includes/js/jquery/jquery.js?ver=1.11.0'></script>
<script type='text/javascript' src='http://gazeleyandgazeley.com/site/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.2.1'></script>
<script type='text/javascript' src='http://gazeleyandgazeley.com/site/wp-content/themes/twentythirteen-child/js/sidebarfix.js?ver=9.9.9'></script>
<script type='text/javascript' src='http://gazeleyandgazeley.com/site/wp-content/themes/twentythirteen-child/js/gteam.js?ver=9.9.9'></script>
<script type='text/javascript' src='http://gazeleyandgazeley.com/site/wp-content/themes/twentythirteen-child/js/rolldowns.js?ver=9.9.9'></script>
それを最初にロードするか、ドキュメントの最後にロードするかで違いはありますか? トラバースが「機能しない」唯一のことであるため、それは別のjsの競合とは関係なく、それについて何かがあるようです...しかし、やはり、私は本当に何も知りません。8^)