2010-07-29 6 views
0

D'abord, je sais qu'il existe des plugins jQuery pour la recherche suggèrent. La raison pour laquelle je pose cette question est parce que j'ai écrit un pour mes besoins spécifiques et je suis intéressé à apprendre comment faire le script dans jQuery (plutôt que d'utiliser un plugin). Voir le code que j'ai collé à pastebin - J'espère que c'est ok.recherche de réécriture suggérer dans jQuery

Original: http://pastebin.com/VFuXY4iX

Un peu jQuerified: http://pastebin.com/S86ES8bH

Les deux choses que je me bats avec sont les suivantes:

- L'original (et celui jQuery actuellement) les accès nœuds enfants par leur index DOM enfant (voir fonction unhilite()). Je n'ai pas trouvé un moyen de le faire dans jQuery. La chose la plus proche que je peux trouver est .next("selector"), mais les éléments n'ont pas un sélecteur sur lequel je peux entrer, sauf pour l'index DOM. Je pensais surmonter ceci en faisant quelque chose comme:

$('.hilited') 
    .next('li') 
     .addClass('hilited') 
    .end() 
    .removeClass('hilited'); 

Est-ce que cela fonctionnerait bien? Edit: même si cela fonctionne bien, y a-t-il un moyen d'accéder aux index DOM comme ça (pour référence future)? - Deuxièmement, je ne sais pas comment lier les événements clavier avec jQuery (sans utiliser de plugin, ce que je veux éviter - encore une fois à des fins d'apprentissage). Je pense que bind() ou keydown() pourrait fonctionner, cependant.

$('#target').keydown(function(event) { 
    if (event.keyCode == '40') { 
     //next 
    } else if (event.keyCode == '40') { 
     //previous 
    } 
)}; 

Quelqu'un a des suggestions? Merci SO, tu es mon préféré!

PS- sajax_do_call est la syntaxe Mediawiki AJAX pour toute personne qui ne connaît pas ...

+0

Salut les gars, c'est la question la plus lente que j'ai vu. Est-ce que je devrais le supprimer parce que ça ne vaut pas la peine de répondre ou est-ce que les gens ne le savent pas et je devrais le garder - je ne suis pas sûr de l'étiquette appropriée? – Tim

Répondre

0

je répondu à certaines de ma propre question. Je pourrais utiliser le sélecteur nth child de jQuery si je le voulais. Les autres solutions proposées fonctionnent, mais je serais toujours ouvert aux suggestions.

Questions connexes