2010-09-10 6 views
2

J'essaie d'ajouter un <li> à la fin de l'ensemble de résultats sans succès. Je suis dans l'obscurité quant à la longueur du jeu de résultats, car il peut changer en fonction de l'entrée, donc mon compteur que j'ai mis en place ne fonctionne que si les résultats atteignent la limite.Données personnalisées/mise en page avec saisie semi-automatique

La documentation que j'ai trouvée on the jquery ui site m'a été utile pour arriver à ce point.

J'ai initialisé un compteur et mis en place des conditions pour trier certaines données en fonction d'une variable de fenêtre. Voici ce que je travaille avec:

$('#q').autocomplete({...}).data("autocomplete")._renderItem = function(ul, item) { 
     if(autoCount == 0){ 
      $('<img src="/ac-top-arrow.png" class="ac-top-arrow" />').appendTo(ul); 
     } 

     if(item.window){ 
      var inLi = $('<li class="in-window"></li>') 
      .data("item.autocomplete", item) 
      .append('<a><img src="'+item.thumb+'" width="55" height="75" class="imgposter" /><div class="movie-info"><h1>'+item.title + '</h1> <span>('+item.year+')</span><br>' + '<h2>Watch now</h2></div></a>'); 

      if($('ul.ui-autocomplete li.in-window').length){ 
       $('.in-window:last').after(inLi); 
      } else if($('ul.ui-autocomplete li.out-window').length) { 
       $(inLi).addClass('first-in-win'); 
       $('.out-window:first').before(inLi); 
      } else { 
       $(inLi).addClass('first-in-win'); 
       $(inLi).appendTo('ul.ui-autocomplete'); 
      } 
     } 
     else { 
      var outLi = $('<li class="out-window"></li>') 
      .data("item.autocomplete", item) 
      .append('<a><h1>'+item.title + '</h1> <span>('+item.year+')</span></a>'); 

      if($('ul.ui-autocomplete li.out-window').length){ 
       $('.out-window:last').after(outLi); 
      } else { 
       $(outLi).addClass('first-out-win'); 
       $(outLi).appendTo(ul); 
      } 
      if(autoCount == 5){ 
       $(outLi).addClass('after-top'); 
      } 
     } 


     autoCount++; 

     if(autoCount == 6){ 
      $('<li class="bottom"><a href="">> See All Results</a></li>').appendTo(ul); 
      autoCount = 0; 
     } 
    }; 

Répondre

1

Ce accomplit ce que je voulais:

'open': function(e, ui) {$('.ui-autocomplete').append('<li class="bottom ui-menu-item"><a href="#" id="see-more-results">> See All Results</a></li>');}