EDIT 3: strong> J'ai obtenu ce travail en ignorant les conseils donnés ci-dessous et l'écoute de la fenêtre, mais seulement lorsqu'un http://jsfiddle.net/gXPES/5/ p>
EDIT 2: strong> J'ai essayé aborder le EDIT: strong> Merci à answerer aide, j'ai limité les sélecteurs lors de l'écoute Hébergement ce code sur jsFiddle car il n'y a aucun moyen possible de faire des commentaires dans son intégralité ici. J'ai posté tout mon JS, CSS et HTML utilisé pour l'interface elle-même. P>
Je suis la conception d'une interface utilisateur d'inspiration Gmail pour la gestion des tâches en utilisant jQuery sur le front-end (et PHP sur le back-end, mais il est largement hors de propos à ce sujet). P>
Je suis encore relativement nouveau pour le développement jQuery et je me rends compte Je fais un certain nombre de mauvaises choses strong>. Jusqu'à présent, je tout simplement pas connu quoi exactement strong> Je fais mal ni comment le résoudre strong>. J'espérais des âmes plus savants pourraient me aider (et d'autres, je l'espère) Découvrez comment factoriser le code jQuery pour une application de plus grande taille. P>
Pour commencer, voici un certain nombre de choses que je voudrais savoir comment faire mieux: p>
Appeler ce code uniquement lorsque l'interface de tâche est active. P> li>
Améliorer l'écoute pour le entrée code>,
text code> ou
textarea code> ne se concentre pas. Je ne suis pas sûr que ce soit la meilleure façon d'être traiter ce problème, cependant. P>
keydown code> problème en appliquant
mise au point code> et
flou code> manutentionnaires à < code> entrée code> s. Alors j'écoute seulement pour des événements lorsque
var focus_on_input == true code>. Mais il semble que tout ne va pas bien. Ce qui empêche certains comportements, mais ayant d'autres, un comportement plus bizarre. Par exemple, quand je onglet kbd> sur le champ de saisie, appuyez sur J kbd> et K kbd> va sauter vers le haut ou le bas de la liste. Si I
cliquez sur code> ailleurs et mise au point de changement, ce problème est résolu. Toute pensée? P>
keydown code> pour que je puisse encore taper des caractères ailleurs, mais je suis en cours d'exécution dans un nouveau numéro. Lorsque j'appuie sur J kbd> ou K kbd> les sauts de navigation flèche vers le haut ou le bas de la liste des tâches. Et quand je presse C kbd> ou # kbd> il me informe qu'aucune tâche est sélectionnée. X kbd> fonctionne comme il se doit et ne sélectionnez pas une tâche. P>
keydown code>. Actuellement, j'écoute pour J kbd>, K kbd>, X kbd>, Maj + 3 kbd> et C kbd >. Je vais aussi être à l'écoute sur E kbd> pour l'édition tâche, mais pas encore mis en œuvre les modifications. Le problème avec les auditeurs strong> est liée à ma première préoccupation, est qu'ils sont toujours strong>. Cela signifie que la touche J kbd> alors que dans un
4 Réponses :
.Beydown code> n'a pas besoin d'être attribué à
$ (fenêtre) code> Il faut un sélecteur tel que
$ (': non (textarea)') code> p>
Donc, vous suggérez-vous de lier à # liste-liste-conteneur code> alors? Et puis peut-être ajouter quelques
: pas code> s pour les entrées et textaes? Edit: B> Nevermind, cela ne fonctionnera pas. Alors, quelle est une bonne liste sûre de
: pas code> sélecteurs alors?
Vous avez l'idée, limitez la portée aux éléments que vous souhaitez.
: non (textarea): non (: texte) sont les plus importants
L'entrée inclut les cases à cocher, qui devraient avoir le travail de finition au clavier
Ah, Gotcha. Le problème que je vois, c'est qu'il n'entraînera pas la lettre dans d'autres intrants. Peut-être que je devrais changer ces retour false code> à un
if-ele code> construction?
Je serai le premier à admettre que je n'ai pas appris à le faire (et je devrais vraiment faire), mais faire glisser et laisser tomber serait une bonne option pour réorganiser les tâches de la liste. Le look est très gentil au fait. J'utilise IE8 et je n'arrive pas à utiliser les raccourcis du clavier, malheureusement - mais il semble que Jsfiddle ne me permettra pas de se concentrer sur le volet de résultats, de sorte que ce n'est pas votre code qui ne se comporte pas pour IE8. p>
Ah, je pense que c'est parce que vous ne pouvez pas changer de concentration vers le volet. Je ne peux l'utiliser que lorsque je clique dans la vitre elle-même (sur Chrome). Cela semble-t-il décent dans IE8, cependant? Je n'ai effectué aucune vérification du navigateur croisé. En ce qui concerne la fonctionnalité de Drag + Drop, cela devrait être mis en œuvre avec JQuery UI, mais pour le moment je ne sais pas si le cas d'utilisation est là pour cela. Commander au moment est fait par date d'échéance, de sorte qu'il ne serait donc pas logique de faire une traînée de traînée +.
Hein, commandé par date, hein? Cela a du sens :) Ça a l'air bien dans IE, jolie sacré. J'aimerais avoir un but pour faire une chose aussi belle.
jquery ui sortables pourrait ajouter ce genre de fonctionnalité assez facilement
@Sural Dreams, démarrez une entreprise. :)
@Josh Smith: Errr ... Je suis nerveux de faire pigeant, une entreprise sonne terrifiante b>. :)
@Sural Dreams, je vous entends. Et c'est terrifiant quotidiennement. P.S., si vous souhaitez être au début de notre taille, essentiellement pré-alpha, n'hésitez pas à m'envoyer un email. josh [at] buals.com
J'aime votre idée! J'ai fait quelques modifications dans votre code pour le rendre plus rationnel ( Démo mise à jour ): p>
Keydown code> à partir de $ (this) code> to $ (document) code> ( ref ). Li>
- Ajout d'objets jQuery mis en cache ajoutés pour accélérer le script (E.G.
conteneur = $ ('# Taste-liste-conteneur') code>). Li>
- Fabriqué un
YellowTaskMessage code> fonction pour ajouter des alertes. Li>
- ajouté
jaune-tâche-message code> div au HTML. Li>
- ajouté
Affichage: Aucune code> à .Yellow-Task-Message Code> dans le CSS. LI>
- rationalisé quelques autres choses (par exemple non emballés
next_task code> comme il est déjà un objet JQuery). LI>
- a dirigé le script via jslint pour nettoyer les erreurs (ne pas compter les variables globales) li>
ol>
Je suis tombé sur ce projet la nuit dernière et j'étais complètement inspiré! J'ai décidé de travailler à travers la nuit et aujourd'hui et j'ai refacturé le code d'être un peu plus modulaire et d'accepter tout type de données. P>
La notion d'une tâche a été supprimée, ainsi que tout ce qui a été attribué à l'origine à une tâche. Je l'ai fait pour que cela envisage de le faire fonctionner pour tout type de données et permettez d'afficher davantage l'affichage des données et de la modification des données par d'autres moyens. Cette interface est également plus proche de l'interface Gmail plus à jour, autant que je puisse dire. p>
Changements de fonctionnalité notés: P>
http://jsfiddle.net/epic720/bfjyv/7/ p >
http://jsfiddle.net/epic720/bfjyv/7/Enbedded/result / (FullScreen, aucun code) p>
aimerait tout retour d'information à ce sujet, je prévois de continuer mon travail ici et d'en faire une édition de données complète d'édition de données. P>
Probablement pas la critique que vous recherchez, mais que diriez-vous d'utiliser pour sélectionner? Je crois que cela vérifiera / décochez des cases dans d'autres UIS, c'est donc un peu ce que j'attendrais. Je ne sais pas non plus pourquoi Gmail utilise J / K au lieu de w / s ... Les joueurs s'attendaient à ce que..mais quoi que ce soit: P Edit: B> NVM..SPACE Fait défiler la page dans FF.
PS: ça a l'air sexy. Je l'aime bien.
@Mark, je pourrais certainement utiliser les deux espace kb> et x kbd>. Personnellement, je suis un utilisateur de Gmail Power, c'est pourquoi j'ai choisi les caractères que j'ai faits. Quels autres UIS connaissez-vous de cet usage espace kbd>? EDIT: B> GOTCHA sur FF. Même avec chrome. Qui peut être une norme de navigateur.
@Mark, oh, et merci pour les compliments. Et RE: W / S, c'est parce que "s" est pour "Star".
@Moshe, merci! Après s'être assis ici pendant des mois et des mois et codant (bien que ce que vous voyez juste, il a été préparé au cours des dernières 24 heures), il est agréable d'entendre des pensées à l'aspect et à la sensation. Très appréciée.
@Joshsmith - De rien. Au fait, cet échantillon de code n'a pas à voir avec des buals.com, n'est-ce pas? ;)
@Moshe, en effet ça fait! Je pensais que les gens snoopent un peu, mais ça va. :]
@Joshsmith - tout ce que vous postez en ligne est dans le domaine pubien pour toujours. (Ou jusqu'à la prochaine fois que tous les moteurs de recherche effacent leurs caches respectifs, en supposant que personne ne la téléchargée tant qu'elle était en place.)
@Joshsmith - Un conseil - lorsque vous remplissez un objectif, il ne devrait pas simplement disparaître pour toujours. Je veux pouvoir voir mes objectifs précédents, même s'ils sont terminés.
@Moshe, oh bien sûr. Et ceci est pour les tâches, pas des objectifs. Les objectifs ont une interface utilisateur différente. Et la tâche (lorsque terminée) ne disparaîtra pour toujours non plus. Ceux-ci seront enregistrés. Vérifiez cela pour un exemple (avec des rêves, pas des buts): Farm5.Static.flickr. COM / 4015 / 5160652754_1CA488DCEC_O.PNG
@JOSH: Les chèques d'espace / décochent des trucs dans Windows. Dans FF et Chrome, entrez dans leurs options, trouvez une case à cocher, concentrez-la, puis vous pouvez appuyer sur l'espace pour le basculer. Je me suis ajouté à la liste de notify sur Goals.com.
@Mark: Merci! J'ai depuis ajouté de l'espace comme option de sélection pour la liste des tâches. Si vous souhaitez vérifier le pré-alpha, n'hésitez pas à m'envoyer un email à Josh [at] buals.com et je vais vous mettre en place. Acclamations.