将手风琴中的一个项目限制为未折叠

时间:2013-12-05 17:52:43

标签: javascript jquery html5 css3 jquery-mobile

所有可折叠商品都不应该崩溃。至少有一个项目应保持未收缩状态。我想更改以下示例以满足我的需求。我将不胜感激任何帮助!

/*\Animate collapsible set;\*/

$(document).one("pagebeforechange", function () {
    // animation speed;
    var animationSpeed = 200;

    function animateCollapsibleSet(elm) {
        // can attach events only one time, otherwise we create infinity loop;
        elm.one("expand", function () {
            // hide the other collapsibles first;
            $(this).parent().find(".ui-collapsible-content").not(".ui-collapsible-content-collapsed").trigger("collapse");
            // animate show on collapsible;
            $(this).find(".ui-collapsible-content").slideDown(animationSpeed, function () {
                // trigger original event and attach the animation again;
                animateCollapsibleSet($(this).parent().trigger("expand"));
            });
            // we do our own call to the original event;
            return false;
        }).one("collapse", function () {
            // animate hide on collapsible;
            $(this).find(".ui-collapsible-content").slideUp(animationSpeed, function () {
                // trigger original event;
                $(this).parent().trigger("collapse");
            });
            // we do our own call to the original event;
            return false;
        });
    }
    // init;
    animateCollapsibleSet($("[data-role='collapsible-set'] > [data-role='collapsible']"));
});

以下是动画可折叠集的工作示例:http://jsfiddle.net/jerone/gsNzT/

1 个答案:

答案 0 :(得分:0)

所以你不想让所有的项目都崩溃了?我会这样做: 抓住崩溃事件然后:

  1. 如果当前展开了折叠项目(.attr('data-collapsed') == "true"),则返回false并防止崩溃

  2. 如果没有展开折叠项目,没关系,它会崩溃,另一个项目会展开

  3. 您可能会考虑检查此问题:How do I restrict a collapsible item to stay expanded...

    如果已经实现了此

    的方法,还要检查jquery移动文档