如何创建自动列表的分隔在动态创建的jQuery Mobile的列表(how to create au

2019-11-01 19:50发布

我创建邮件列表动态。 我有一个<ul>标签,我产生内部动态列表。 不过,我不知道该如何分隔列表添加到这一点。 会有在JS的刷新方法,我可以打电话这将增加分隔后我的名单?

这是我有:

<ul id="messages" data-autodividers="true" data-role="listview" data-theme="c">

    //a list of <li> are dynamically generated here

</ul>

这仅追加名录分隔到极顶,我需要几个人的内<li>标记。 我的列表<li>的是消息。 我希望能够通过日期有分隔,因此使得它更容易使用。

Answer 1:

我有一个的jsfiddle http://jsfiddle.net/yVtVE/2/

该代码是有点不同,但它的工作原理

假设像这样的列表

<ul data-role="listview" id="MessagesList" data-autodividers="true">
                <li date="2013-03-20"><a href="#">Event 1</a></li>
                <li date="2013-03-20"><a href="#">Event 2</a></li>
                <li date="2013-03-19"><a href="#">Event 3</a></li>
           </ul>

您的代码会

$("#MessagesList").listview({
            autodividers: true,
            autodividersSelector: function (li) {
                var out = li.attr('date');
                return out;
            }
        }).listview('refresh');

原版的

从JQM文档http://api.jquerymobile.com/listview/

Autodividers

一个列表视图可被配置成自动生成其项目分频器。 这是通过添加一个数据autodividers =“true”属性的任何列表视图进行。

默认情况下,用于创建分隔文本是该项目的文本的大写的第一个字母。 另外,您可以通过设置列表视图的autodividersSelector选项编程方式指定分隔文本。 例如,要定制的选择添加到具有ID =“mylistview”的元素:

$( "#mylistview" ).listview({
autodividers: true,
// the selector function is passed a <li> element from the listview;
// it should return the appropriate divider text for that <li>
// element as a string
autodividersSelector: function ( li ) {
var out = /* generate a string based on the content of li */;
return out;
}
});

比方说,你有个约会在您的邮件您的代码将工作是这样的

$( "#mylistview" ).listview({
autodividers: true,
autodividersSelector: function ( li ) {
    var re = /\/\d{4}\/\d{2}\/\d{2}/i;
    var out = $(this).html().match(re);
    return out;
  }
});

我没有测试此代码,它可能有缺陷,但它会给你一个想法去尝试。



文章来源: how to create auto list dividers when dynamically creating a list in jquery mobile