我正在使用移动网站并使用jquerymobile。 手风琴中有4个可折叠物品。我希望其中一个项目能够保持扩展。如果我单击展开的项目,它将折叠(我不想折叠此项目)。 如果我单击任何其他折叠项目,则折叠最后一个展开的项目(没关系)。
感谢您的帮助。手风琴类别的动态javascript代码如下:
function create-accordion(categories)
{
category_array = categories;
jQuery.each(categories, function( index, value )
{
var div = '<div data-role="collapsible" class="custom-collapsible" ';
if(index == 0)
div += 'data-collapsed="false"';
div += '>';
div += '<h3 style:"padding:0px; margin:0px;"> ' + value.name + '</h3>\
<div class= "collapsable-limit-theme">\
<div data-role="content" style="padding:0px; margin:0px;">\
<div class="ui-grid-c, Grid" id="Grid' + value.id + '">\
</div>\
</div>\
</div>\
</div>';
$($('#accord'), this).append(div);
});
$( "#accord" ).collapsibleset( "refresh" );
}
和html代码
<div id="accord" data-role="collapsible-set" border-radius="0px" >
</div>
此致
答案 0 :(得分:1)
您需要点击.ui-collapsible-heading-toggle
,然后检查点击的可折叠是折叠还是展开。如果折叠折叠,则会有一个类.ui-collapsibe-collapsed
。
如果单击展开的可折叠,则会阻止return false
折叠自身,否则会折叠所有展开的折叠。
$(".ui-collapsible-heading-toggle").on("click", function () {
// clicked collaspible
var collapsible = $(this).closest(".ui-collapsible");
// check if its whether collapsed
if (collapsible.hasClass("ui-collapsible-collapsed")) {
// collapse expanded collapsibles
$(".ui-collapsible").not(collapsible).trigger("collapse");
} else {
// keep expanded clicked collapsible as is
return false;
}
});
<强> Demo 强>