diff --git a/css/jquery.uls.lcd.css b/css/jquery.uls.lcd.css index 529b8bc..6c7c932 100644 --- a/css/jquery.uls.lcd.css +++ b/css/jquery.uls.lcd.css @@ -104,13 +104,6 @@ vertical-align: middle; } -/* TODO: ugly hack that forces last matching search results to shift down. - * They should be hidden properly. - */ -.uls-no-results-view { - height: 100%; -} - .uls-no-results-found-title { font-size: 16px; padding: 0 16px 0 28px; diff --git a/src/jquery.uls.core.js b/src/jquery.uls.core.js index 40183f3..a4071e3 100644 --- a/src/jquery.uls.core.js +++ b/src/jquery.uls.core.js @@ -221,7 +221,7 @@ }, /** - * callback for results found context. + * Callback for results found context. */ success: function () { this.$resultsView.show(); diff --git a/src/jquery.uls.lcd.js b/src/jquery.uls.lcd.js index 2295e17..2bba056 100644 --- a/src/jquery.uls.lcd.js +++ b/src/jquery.uls.lcd.js @@ -31,7 +31,6 @@ .addClass( 'uls-no-results-found-title' ) .text( 'No results found' ), $( '
' ) - .attr( 'id', 'uls-no-found-more' ) .addClass( 'uls-no-found-more' ) .append( $( '
' ) @@ -54,7 +53,7 @@ this.renderTimeout = null; this.cachedQuicklist = null; - this.$element.append( $( noResultsTemplate ) ); + this.$element.append( noResultsTemplate.clone() ); this.$noResults = this.$element.children( '.uls-no-results-view' ); this.render(); @@ -175,7 +174,7 @@ lcd = this; this.$noResults.addClass( 'hide' ); - this.$element.find( '.uls-lcd-region-section' ).each( function () { + this.$element.children( '.uls-lcd-region-section' ).each( function () { var $region = $( this ), regionCode = $region.attr( 'id' ); @@ -367,16 +366,20 @@ noResults: function () { this.$noResults.removeClass( 'hide' ); + this.$noResults.siblings( '.uls-lcd-region-section' ).addClass( 'hide' ); + + // Only build the data once if ( this.$noResults.find( '.uls-lcd-region-title' ).length ) { return; } var $suggestions = this.buildQuicklist().clone(); + $suggestions.removeClass( 'hide' ).removeAttr( 'id' ); $suggestions.find( 'h3' ) .data( 'i18n', 'uls-no-results-suggestion-title' ) .text( 'You may be interested in:' ) .i18n(); - this.$noResults.find( 'h2' ).after( $suggestions.show() ); + this.$noResults.find( 'h2' ).after( $suggestions ); }, listen: function () {