我正在研究listview
基于日期的自动分频器,它是一个非常长的列表& data-autodividers='true'
工作正常,但我想通过使listview
在日期可折叠来进一步改进它。
这可以使用c#(我在asp.net webform移动网站上工作)从后端完成,我根据Month-Year对列表进行分组,并使每个组都可以折叠。
但我希望像对待autodivider
一样使用jQuery。我在jsFiddle上设置了相同的内容。
如何使用jQuery 使这些自动分割器可以折叠,而无需从代码隐藏文件(c#)执行此操作?
我没有看到jquerymobile将此作为构建选项。
$(document).on("pageinit", "#page-wrapper", function () {
$("#hp-latest-articles").listview({
autodividers: true,
autodividersSelector: function (li) {
var out = li.attr('date');
return out;
}
}).listview('refresh');
});
答案 0 :(得分:1)
如果我理解了您的问题,我认为您只需使用 $。mobile.listview.prototype.options.autodividersSelector 选项。我有类似的问题,所以如果你需要根据单个元素的date属性列出它们,请执行:
$( document ).on( "mobileinit", function() {
$.mobile.listview.prototype.options.autodividersSelector = function( element ) {
return (element.attr('date'))
};
});
我为此准备了一个jsbin:http://jsbin.com/enuwoj/1/edit
答案 1 :(得分:1)
您的问题有两种解决方案。
<div data-role="collapsible">
<h3>Title</h3>
<ul><li>Item1</li><li>Item2</li></ul>
</div>
答案 2 :(得分:1)
我相信通过在原始小提琴的底部添加以下内容来解决您的问题
$('.ui-li-divider').click( function(ev ){
var li = $(ev.target).next(':not(.ui-li-divider)');
while ( li.length > 0 ) {
li.toggle();
li = li.next(':not(.ui-li-divider)');
}
});
以下是更新后的jsFiddle
基本上,每次单击分隔符时,它会查找所有后续LI,直到下一个分隔符并切换其可见性。
答案 3 :(得分:0)
您需要<div data-role="collapsible">
或<div data-role="collapsible-set">
,具体取决于您是否要将它们分组。
如果您希望它们在默认情况下预先折叠,请同时包含data-collapsed="true"
属性。