Je cherche à déterminer quel élément avait la dernière mise au point d'une série d'entrées, qui sont ajoutées de manière dynamique par l'utilisateur. Ce code ne peut que recevoir les entrées disponibles uniquement sur la charge de la page:
<ul> <li><input class="item" name="goals[]"> <ul> <li>long list here</li> <li>long list here</li> <li>long list here</li> </ul></li> </ul> <a href="#" id="add">Add another</a>
5 Réponses :
Vous pouvez utiliser le sélecteur : Dernier code> pour ne gérer que l'événement sur le dernier
Ceci est proche, slaks et je modifierai mon poste pour refléter le problème. Je n'en ai pas besoin d'ajouter au dernier élément correspondant de l'arbre. J'en ai besoin pour ajouter à l'élément qui s'est concentré le plus récemment. Ce code échoue si vous ajoutez plusieurs éléments, puis concentrez-vous sur l'élément qui apparaît plus tôt dans le DOM.
Cela n'a aucun sens. À tout moment, l'élément que l'événement vient de tirer pour est celui qui s'est concentré le plus récemment.
Slaks, j'ai ajouté une image pour afficher ma préoccupation ici. La question est que si j'utilise votre code, il regarde en permanence le dernier élément de l'arbre DOM. Mais alors si vous allez cliquer sur un élément antérieur, il travaille toujours sur la dernière occurrence de INPUT.Item code> - Est-ce que cela fait de plus de sens?
Demandez-vous de cacher l'autre
code> s?
Je manipule que je me cache sur Flou. Je cherche simplement à montrer le ul code> qui est un frère de frère quel que soit l'entrée d'un utilisateur, mais un seul à la fois.
@Joshua - Je ne comprends pas non plus, il semble que le deuxième bloc de code de votre question ferait ce que vous décrivez ...
@Nick, peut-être j'ai quelque chose de mal ailleurs. Mais lorsque j'utilise et surveille de la mise au point, il effectue l'action sur tous les éléments qui ont déjà été accentués, non seulement l'élément qui vient d'être concentré.
@Joshua - Quoi de neuf de cet exemple: jsfiddle.net/xhfga qui le compromettrait :)
@Nick génial! C'est d'une grande aide. Bookarked pour la conservation future et l'enquête maintenant.
Selon La documentation (voir 'Comparets'), .Live () Code> dans jQuery 1.4.1 prend en charge
Focus code>, mappage sur
FOCUSIN CODE>. Je suggère de créer un élément dans la portée commune pour contenir le dernier élément ciblé. Peut-être comme si:
Essayer cela et essayer de faire des plis. Jusqu'à présent, alors prometteur :)
Malheureusement, il attrape toujours tous les éléments qui se sont concentrés sur la mise au point. Et en les faisant tous d'affichage en cliquant sur le lien pour un autre élément: /
document.activeLement code> est ce que vous voulez. Cela fait partie de HTML5 et soutenu par tous les navigateurs modernes, y compris IE. P>
En fait, ce n'est pas pris en charge par tous les navigateurs (par exemple, Firefox 2)
Oublié la partie "moderne". L'utilisation de Firefox 2 est très faible de nos jours, donc je ne m'inquiéterais pas pour ça.
En fin de compte, ce fut une erreur de code dans d'autres qui a été source de confusion au sujet de la DOM qui avait mise au point. p>
La ligne était la suivante: Et il devait être ceci: Parce que l'élément ajouté est toujours en dernier dans la liste. P>
On a beaucoup appris, et je l'ai essayé de démarrer et upvote en conséquence. En particulier de la note à la question en général: p>
Merci beaucoup, SO, pour votre aide sur cette question. P> $ ( '# item-add') find ( 'input.item') mise au point (); code> p>..
.
$ ( '# item-add: dernière). Find ( 'input.item') mise au point (); code> p>
Que signifie cette phrase? "Et ce code voit tous les éléments qui ont déjà eu la mise au point:" I> Cela me semble que vous voulez simplement que le menu apparaisse sous quelle valeur
code> se concentre. Est-ce correct?
C'est vrai, Patrick, mais .Live effectue la fonction sur toutes les intrants qui ont jamais été au centre. Il voit un élément se concentre, puis la stocke. Et lorsque vous agissez à nouveau sur la mise au point, il agit sur l'élément actuellement ciblé et l'élément précédemment ciblé, car il a été observé par Live. Voir la mise en garde mentionnée par James Kolpack.
Quelle version de jQuery utilisez-vous?
live () code> fonctionne bien pour moi lorsque vous cachez et montre des frères et sœurs. L'événement sur une entrée
code> ne devrait pas affecter les autres. N'aurait pas d'importance quand ils ont été chargés.