1 (function( $, undefined ) {
3 $.mobile.listview.prototype.options.autodividers = false;
4 $.mobile.listview.prototype.options.autodividersSelector = function( elt ) {
5 // look for the text in the given element
6 var text = elt.text() || null;
12 // create the text for the divider (first uppercased letter)
13 text = text.trim().slice( 0, 1 ).toUpperCase();
18 $.mobile.$document.delegate( "ul,ol", "listviewcreate", function() {
21 listview = list.data( "listview" );
23 if ( !listview || !listview.options.autodividers ) {
27 var replaceDividers = function () {
28 list.find( "li:jqmData(role='list-divider')" ).remove();
30 var lis = list.find( 'li' ),
31 lastDividerText = null, li, dividerText;
33 for ( var i = 0; i < lis.length ; i++ ) {
35 dividerText = listview.options.autodividersSelector( $( li ) );
37 if ( dividerText && lastDividerText !== dividerText ) {
38 var divider = document.createElement( 'li' );
39 divider.appendChild( document.createTextNode( dividerText ) );
40 divider.setAttribute( 'data-' + $.mobile.ns + 'role', 'list-divider' );
41 li.parentNode.insertBefore( divider, li );
44 lastDividerText = dividerText;
48 var afterListviewRefresh = function () {
49 list.unbind( 'listviewafterrefresh', afterListviewRefresh );
52 list.bind( 'listviewafterrefresh', afterListviewRefresh );
55 afterListviewRefresh();