J'ai ces menu de Textfield and Dropdown pour un Facebook comme Autosuggestion: mon CSS: p> Comment puis-je atteindre pour Passez l'état "Survol" avec Voici un Liez le code Jsfiddle . p> p>
4 Réponses :
Vous pouvez utiliser une touche fléchée comme fond de champ de saisie à l'aide de CSS / Utilisez une superposition sur le champ d'entrée avec l'image de flèche d'arrière-plan et rendez-la visible dans l'état de survol à l'aide de CSS ou de JS P>
Bien sûr c'est moche. Sur violon ici .
<script src="jquery.js"></script> <script> $(function (){ $('.display_box').hover(function (){ $(this).attr('class', 'display_box current') }, function (){ $(this).attr('class', 'display_box'); }); $('#search').keyup( function (e){ var curr = $('#display').find('.current'); if (e.keyCode == 40) { if(curr.length) { $(curr).attr('class', 'display_box'); $(curr).next().attr('class', 'display_box current'); } else{ $('#display div:first-child').attr('class', 'display_box current'); } } if(e.keyCode==38) { if(curr.length) { $(curr).attr('class', 'display_box'); $(curr).prev().attr('class', 'display_box current'); } else{ $('#display div:last-child').attr('class', 'display_box current'); } } } ) }); </script> <style> .current{ background:#3b5998; color:#FFFFFF; } </style> <input type="text" id="search" name="search_fld"/> <div id="display"> <div class="display_box current">Luca</div> <div class="display_box">David</div> <div class="display_box">Mark</div> <div class="display_box">...</div> </div>
Même idée que moi, juste une implémentation différente. :)
Vous ne pouvez pas imiter parfaitement l'état de navigation .. Il n'y a pas d'évasion d'ajouter une "vraie" classe avec le même style:
window.displayBoxIndex = -1; $("#search").keyup(function(e) { if (e.keyCode == 40) { Navigate(1); } if(e.keyCode==38) { Navigate(-1); } }); var Navigate = function(diff) { displayBoxIndex += diff; var oBoxCollection = $(".display_box"); if (displayBoxIndex >= oBoxCollection.length) displayBoxIndex = 0; if (displayBoxIndex < 0) displayBoxIndex = oBoxCollection.length - 1; var cssClass = "display_box_hover"; oBoxCollection.removeClass(cssClass).eq(displayBoxIndex).addClass(cssClass); }
Si vous l'avez fait, alors, honnêtement ... ce serait beaucoup mieux que le mien
Classe Code> est un nom réservé. Vous devez changer ce nom de var ou ne fonctionnera pas, au moins sur Jsfiddle. Version de travail: jsfiddle.net/supertrue/mkzse/51
@superTrue correct, il travaillait quand j'ai écrit ceci probablement classe code> était marqué comme réservé à un moment donné. N'a pas été informé de votre commentaire mais meilleur tard que jamais! :-)
Je sais que c'est de retour de 2012 mais comment sélectionneriez-vous l'élément sur le clavier "Entrée" Press?
@Carlos Simple question de manipulation du code-clés 13, voir dans ce violon . Au lieu d'alerter la valeur sélectionnée, vous pouvez l'envoyer via AJAX ou tout ce que vous voulez. :)
Pour implémenter le champ de texte d'autosuggestion, il serait préférable d'utiliser la balise "Datatalist" comme suit:
<input list="search" name="search_fld"/> <datalist id="search"> <option value="Luca"/> <option value="David"/> <option value="Mark"/> </datalist>