0

您好,我按照此网页的说明向您的 Drupal 7 站点添加了一个类似 Blogger 的可折叠存档块,并让我自己感到惊讶,一切似乎都“有点”工作。正如您从本页右侧的“可折叠块”中看到的那样,在查看其他月份时,该块似乎不想保持打开状态。我不认为这是预期的行为。

jQuery(document).ready(function($) { 
    // init: collapse all groups except for the first one
    $(".view-collapsible-archive ul").each(function(i) {
        if (i==0) {
            $(this).siblings("h3").children(".collapse-icon").text("▼");
        } else {
            $(this).hide();
        }
    });
 
    // click event: toggle visibility of group clicked (and update icon)
    $(".view-collapsible-archive h3").click(function() {
 
        var icon = $(this).children(".collapse-icon");
 
        $(this).siblings("ul").slideToggle(function() {
            (icon.text()=="▼") ? icon.text("►") : icon.text("▼");
        });
    });
});

任何人都可以向我提出任何建议,让菜单块在单击时打开一个月并关闭其他“月份”?

谢谢

4

2 回答 2

1

这是因为这条线:

$(this).siblings("ul").slideToggle

它说:“使用幻灯片动画切换所有 ul 元素的状态”

您需要在隐藏时将其更改为 slideDown 以显示它,并在可见时将其更改为 slideUp 以隐藏它。

我会提供一个代码示例,但我现在用一个拇指在 iPhone 上打字。

于 2013-08-15T03:23:58.330 回答
1

问题是您拥有的代码已经添加到文件http://netmagpie.com/sites/all/themes/feverultra/js/feverultra.js中,然后通过添加文件,您将两次绑定到事件并且函数切换两次,因此元素打开和关闭

如果您只想打开一个月,那么您需要在打开被点击的月份之前关闭所有打开的月份,例如:

jQuery(document).ready(function($) { 
    // init: collapse all groups except for the first one
    $(".view-collapsible-archive ul").each(function(i) {
        if (i==0) {
            $(this).siblings("h3").find(".collapse-icon").text("▼");
        } else {
            $(this).hide();
        }
    });

    // click event: toggle visibility of group clicked (and update icon)
    $(".view-collapsible-archive h3").click(function() {

       $('.view-collapsible-archive ul:visible').not($(this).next('ul')).slideUp();

        var icon = $(this).find(".collapse-icon");
        $(this).siblings("ul").slideToggle(function() {
            (icon.text()=="▼") ? icon.text("►") : icon.text("▼");
        });
    });
});
于 2013-08-15T05:49:50.453 回答