0
オンロードを非表示にしてdata-id
のp
がクリックされたときに切り替えるスクリプトがあります。今すぐこのスクリプトは、.wc-gallery
を最初に切り替えたときにのみ機能します。 hide()
に戻すと、それは動作しません。データID経由で切り替えることはできません
私はHTML内に複数の.gallery-container2
を宣言しています。現在有効なものがある場合は正常に動作しますが、他の.gallery-container2
から別のp
をクリックすると、がhide()
に変わり、最近クリックされたものがshow()
になります。
HTML:
<div class="gallery-container2">
<p data-id="1723"><strong>View before and after</strong></p>
<div class="gallery-item" data-id="1723">
<div class="wc-gallery" style="display: none;"></div>
</div>
</div>
SCRIPT:あなたはそれを渡しているように、それは述語を取らないよう
$(window).load(function() {
$(".gallery-container2 .gallery-item .wc-gallery").hide();
});
$(".gallery-container2 p").click(function() {
var id = $(this).data('id');
$(".gallery-container2").find('.gallery-item').each(function() {
$(this).find('.wc-gallery').toggle($(this).data('id') === id);
});
});
あなたのセレクタを反復処理する必要はありませんようhttp://api.jquery.com/toggle/これは '$は、(」。ギャラリーにcontainer2" )。(『ギャラリーアイテム』)を見つけるには、'、おそらくあるだけでなく、より効率的になりますページにそのクラスの要素が複数あると指定してから十分に具体的ではありません。すでに見つかったid値を使ってdata-id属性を選択してください – ken4z
私は '$(this) '.gallery-container2 p'を使用しているので、これは動作しませんが、スクリプトにいくつかの追加構造を追加して追加すると助けになるでしょう? – MIke
申し訳ありませんが、あなたは正しいです。 toggle() ' – ken4z