Bootstrap 3,在悬停时打开Collapse元素

时间:2013-11-18 16:54:52

标签: twitter-bootstrap collapse

我正在尝试将一些代码从Bootstrap 2转换为Bootstrap 3

$(document).on('mouseenter.collapse.data-api', '[data-toggle=collapse]', function(e) {
    var $this = $(this),
        href, target = $this.attr('data-target') || e.preventDefault() || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
        ,
        option = $(target).data('collapse') ? 'show' : $this.data()
        $(target).collapse(option)
});

看起来他们从v2 > v3改变了很多东西,所以我对改变什么感到有点失落。我找到了一个有点处理它的线程,但实际上并没有做我想要的事情:

Bootstrap Collapse accordion on hover

基本上我需要Collapse中有x个元素。当您将鼠标悬停在其中一个上时,它会将其打开(而不是必须单击它)。然后当你移动另一个时,它会关闭其他的并打开新的。

感谢您的任何建议!

1 个答案:

答案 0 :(得分:3)

我按照以下步骤编辑了脚本以使其正常工作

$(function() {
    $(document).on('mouseenter.collapse', '[data-toggle=collapse]', function(e) {
        var $this = $(this),
            href, target = $this.attr('data-target') || e.preventDefault() || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')
            ,
            option = $(target).hasClass('in') ? 'hide' : "show";
            $('.panel-collapse').not(target).collapse("hide");
            $(target).collapse(option);
    })
});