通过数据ID切换不切换回来

时间:2016-08-18 03:19:07

标签: javascript jquery html

我有一个隐藏.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);
        });
    });

1 个答案:

答案 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()
});