0

こんにちは、クリックすると非表示の div のコンテンツを表示するかなり単純なスクリプトを実行しています。問題は、「非表示」要素が「表示」のみで機能しないことです。

<script type="text/javascript">
    $(function() {
    $(".slidingDiv").hide();
    $(".hide, .show").show().on('click', function(e) {
        var elm = $(e.target).is('.show') ? $(e.target) : $(e.target).parent().prev('.show');
        elm.toggle().next(".slidingDiv").slideToggle()
    });
});
</script>

<style type="text/css">
.slidingDiv {
    display: none;
    height:200px;
    width:auto;
}
</style

<div id="footer-widgets-container">
    <div id="footer-widgets" class="col-full col-4"> <a href="#" class="show">Show</a>

        <div class="slidingDiv">
            <div class="block footer-widget-1 widget">
                <div class="col1a"></div>
                <div class="col3c"></div>
                <div class="col2b"></div>
            </div>
            <div class="block footer-widget-2"></div>
            <div class="block footer-widget-3"></div>
            <div class="block footer-widget-4">
                <div class="skype p"><a href="#"><p>Skype</p></a>
                </div>
                <div class="email p"><a href="#"><p>Email</p></a>
                </div>
            </div>
        </div>
    </div><a href="#" class="hide">Hide</a>

</div>
4

1 に答える 1

1

間違ったセレクターを使用しているためです。

hideタグを変更して正しい中に入れるか、次のdivようにコードを変更することができます。

<script type="text/javascript">
    $(function() {
        $(".slidingDiv").hide();
        $(".hide, .show").show().on('click', function(e) {
            var elm = $(e.target).is('.show') ? $(e.target) : $(e.target).parent().find('.show');
            elm.toggle().next(".slidingDiv").slideToggle()
        });
    });
</script>

が入っていないのでに変更$(e.target).parent().prev('. show')しました。$(e.target).parent().find('.show')showdiv

それが役に立てば幸い。

于 2013-08-04T20:28:10.470 に答える