【问题标题】:Jquery accordion - open and close buttonJquery 手风琴 - 打开和关闭按钮
【发布时间】:2013-08-14 21:11:14
【问题描述】:

在下面的 cmets 中回答了问题。查看指向 Fiddle 的链接

我正在为下面的 jquery 寻求一点帮助。

简而言之,我想要发生的是,当单击“关于”按钮时,它会打开一个包含文本和关闭按钮的手风琴(.toggle-container)。 (这部分我可以做到。)棘手的部分是,此时我希望“关于”按钮消失,直到手风琴再次关闭。

你可以从小提琴中看到奇怪的事情正在发生。

页面上有多个部分,一次只能打开一个部分。

Fiddle

<section class="staff-member">
<figure>
    <h2>:(</h2>
    <figcaption>
        <a class="open-profile" href="">About</a>
            <div class="toggle-container">
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut aliquet, enim at hendrerit bibendum, leo turpis feugiat risus, id sagittis eros urna auctor lorem. Suspendisse interdum turpis ut est auctor dignissim.</p>
                <a class="close-profile" href="">Close</a>
            </div>
    </figcaption>
</figure>
</section>

(function($, document, undefined){
$('.toggle-container').each(function() {
var $container = $(this);
var $open = $container.siblings('.open-profile');
var $close = $container.find('.close-profile');

$open.on('click', function(e) {
    e.preventDefault();
    $open.hide();
    $container.slideUp('fast');
});
$close.on('click', function(e) {
    e.preventDefault();
    $container.slideDown('fast');
    $open.show();
});
});
})(jQuery, document);

【问题讨论】:

    标签: jquery accordion


    【解决方案1】:

    1) 从你的小提琴中,你放错了 .slideDownslideUp

    2 无需隐藏关于和关闭。

    $open.on('click', function(e) {
            e.preventDefault();
            $container.slideDown('fast');  //corrected it
        });
        $close.on('click', function(e) {
            e.preventDefault();
            $container.slideUp('fast');   //corrected it
    
        });
    

    查看JSFiddle

    更新:既然您需要隐藏链接,请摆脱我的第二点。

    open.on('click', function(e) {
            e.preventDefault();
            $open.hide();   // don't remove        
            $container.slideDown('fast'); //corrected it
        });
        $close.on('click', function(e) {
            e.preventDefault();
            $container.slideUp('fast'); //corrected it
            $open.show();   // don't remove
        });
    

    【讨论】:

    • 几乎没有两件事。 1)当手风琴打开时,关于链接不会隐藏 2)手风琴不应该默认打开(我只是简单地把 $(".toggle-container").hide(); 在开始解决这个问题它似乎有效。但对#1不太确定)。
    • 好的,显然我没有足够的代表来回答我自己的问题。无论如何,感谢 user1671639 我想我明白了。不确定这是否是最好的解决方案,但它似乎有效。点击link 新小提琴。
    • @BertMurphy 哦,你需要隐藏链接,反之亦然。很简单,摆脱我的第二点。
    猜你喜欢
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多