我有一个隐藏.wc-gallery
onload的脚本,然后在点击具有相同p
的{{1}}时切换。现在,只有在您第一次切换data-id
时,此脚本才有效。当您要将其切换回.wc-gallery
时,它将无效。
我的HTML中声明了多个hide()
。虽然当我有一个当前有效的时候它可以正常工作,然后点击另一个.gallery-container2
中的另一个p
,它会将.gallery-container2
一个转为active
然后将最近点击的内容添加到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);
});
});
答案 0 :(得分:0)
检查切换定义,因为它不像你传递的那样采用谓词。 http://api.jquery.com/toggle/这样效率会更高,而且您不必遍历每个.gallery-item
$(".gallery-container2 p").click(function() {
var id = $(this).data('id');
$("[data-id=" + id + "].gallery-item .wc-gallery").toggle()
});