From ca767ff3aa5a0d05aba12e356fe923ee7dc4874a Mon Sep 17 00:00:00 2001 From: Nabil Saleh Date: Fri, 29 Apr 2011 10:09:04 +0200 Subject: [PATCH] code cleanup --- js/jquery.mobile.listview.filter.js | 56 ++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/js/jquery.mobile.listview.filter.js b/js/jquery.mobile.listview.filter.js index 2f0ee3eb..7f9bbae4 100644 --- a/js/jquery.mobile.listview.filter.js +++ b/js/jquery.mobile.listview.filter.js @@ -24,43 +24,67 @@ $( ":jqmData(role='listview')" ).live( "listviewcreate", function() { }) .attr( "data-" + $.mobile.ns + "type", "search" ) .bind( "keyup change", function() { - lastval=$(this).jqmData('lastval')+""; - var val = this.value.toLowerCase(),listItems=null; + lastval = $( this ).jqmData('lastval')+""; + var val = this.value.toLowerCase(), + listItems=null; + //change val as lastval for next execution - $(this).jqmData('lastval',val); + $(this).jqmData( 'lastval' , val ); - change=val.replace(new RegExp("^"+lastval),""); + change = val.replace( new RegExp( "^" + lastval ) , "" ); - if(val.length= 0; i--) { - item = $(listItems[i]); - itemtext=item.jqmData('filtertext') || item.text(); - if (item.is("li:jqmData(role=list-divider)")) { - item.toggleClass('ui-filter-hidequeue',!childItems); + item = $( listItems[i] ); + itemtext = item.jqmData( 'filtertext' ) || item.text(); + + if ( item.is( "li:jqmData(role=list-divider)" ) ) { + + item.toggleClass( 'ui-filter-hidequeue' , !childItems ); + // New bucket! childItems = false; - } else if (itemtext.toLowerCase().indexOf( val ) === -1) { - item.toggleClass('ui-filter-hidequeue',true); + + } else if ( itemtext.toLowerCase().indexOf( val ) === -1) { + + //mark to be hidden + item.toggleClass( 'ui-filter-hidequeue' , true ); } else { + // There's a shown item in the bucket childItems = true; } } - listItems.filter(':not(.ui-filter-hidequeue)').show(); - listItems.filter('.ui-filter-hidequeue').hide().toggleClass('ui-filter-hidequeue',false); + + // show items, not marked to be hidden + listItems + .filter( ':not(.ui-filter-hidequeue)' ) + .show(); + + // hide items, marked to be hidden + listItems + .filter( '.ui-filter-hidequeue' ) + .hide() + .toggleClass( 'ui-filter-hidequeue' , false ); }else{ + + //filtervalue is empty => show all listItems.show(); } })