diff --git a/js/widgets/addFirstLastClasses.js b/js/widgets/addFirstLastClasses.js index bf08829db28..ff5ff1caa6c 100644 --- a/js/widgets/addFirstLastClasses.js +++ b/js/widgets/addFirstLastClasses.js @@ -7,16 +7,31 @@ define( [ "jquery", "../core" ], function( jQuery ) { //>>excludeEnd("jqmBuildExclude"); (function( $, undefined ) { +var uiScreenHiddenRegex = /\bui-screen-hidden\b/; +function noHiddenClass( elements ) { + var index, + length = elements.length, + result = []; + + for ( index = 0; index < length; index++ ) { + if ( !elements[ index ].className.match( uiScreenHiddenRegex ) ) { + result.push( elements[ index ] ); + } + } + + return $( result ); +} + $.mobile.behaviors.addFirstLastClasses = { _getVisibles: function( $els, create ) { var visibles; if ( create ) { - visibles = $els.not( ".ui-screen-hidden" ); + visibles = noHiddenClass( $els ); } else { visibles = $els.filter( ":visible" ); if ( visibles.length === 0 ) { - visibles = $els.not( ".ui-screen-hidden" ); + visibles = noHiddenClass( $els ); } } diff --git a/js/widgets/listview.js b/js/widgets/listview.js index 3b36f027850..d7c89872e02 100644 --- a/js/widgets/listview.js +++ b/js/widgets/listview.js @@ -145,11 +145,15 @@ $.widget( "mobile.listview", $.extend( { .attr( "title", $.trim( last.getEncodedText() ) ) .addClass( altButtonClass ) .empty(); + + // Reduce to the first anchor, because only the first gets the buttonClass + a = a.first(); } else if ( icon ) { buttonClass += " ui-btn-icon-right ui-icon-" + icon; } - a.first().addClass( buttonClass ); + // Apply buttonClass to the (first) anchor + a.addClass( buttonClass ); } else if ( isDivider ) { dividerTheme = ( getAttr( item[ 0 ], "theme" ) || o.dividerTheme || o.theme );