jQuery - Comment sélectionner les éléments enfants d'un parent?
Désolé si le titre n'est pas exact - je ne pouvais pas comprendre comment le mot.
J'ai plusieurs widgets avec la même classe <div class="widget"></div>
- chaque widget possède un titre et le contenu, structuré comme ceci:
<div class="widget">
<div class="widget-title">Title</div>
<div class="widget-content">Content Here</div>
</div>
Le "widget-content" est caché, et lorsque vous cliquez sur le widget-title, le contenu s'affiche, et une classe est appliquée sur le widget-title, le changer pour "widget-title". Cette partie fonctionne à trouver, et le widget-content s'ouvre aussi.
Le problème, c'est son ouverture, le contenu du widget sur TOUS les widgets. Il ne doit ouvrir le widget-content dans le widget spécifique où le titre a été cliqué, pas TOUS d'entre eux. Je ne suis pas sûr de ce que la bonne syntaxe à utiliser, de sorte qu'il ne s'ouvre que le widget-contenu du widget spécifique à l'utilisateur, cliquez sur le titre.
Voici le code que j'ai pour l'instant:
$('.widget').find('.widget-title').click(function() {
$('.widget-content').show('slow', function() {
//Animation complete.
});
$('.widget').find('.widget-title').addClass("open");
});
Quelqu'un pourrait-veuillez fournir un exemple? Grâce
Trop tard pour moi de répondre.- mais oui, le concept est que vous devriez être à l'aide de jQuery précieux "$(this) " dans l'événement click de distinguer entre les différents widgets, et le réel de l'objet jQuery cliquant sur les.
OriginalL'auteur Zach Nicodemous | 2012-04-26
Vous devez vous connecter pour publier un commentaire.
Pourquoi ajoutez-vous de la classe ouverte avant le spectacle? ne serait-il pas mieux à faire ajouter une classe sur le rappel de la montrer car c'est le point à partir duquel il est "ouvert".
Pourquoi ne pas utiliser des "enfants"? Find() n'est pas nécessaire dans ce cas et ne fera que ralentir le script.
OriginalL'auteur simshaun
Je pense que vous voulez ce:
Il ouvre le parent de l'sélectionnés
.widget-title
élément.OriginalL'auteur Elliot Bonneville
Essayez ceci:
OriginalL'auteur Bram Vanroy
J'ai eu le même problème aujourd'hui, voici une solution rapide
$('#parent > childNode');
http://api.jquery.com/child-selector/
OriginalL'auteur Zander Rootman
.children()
http://api.jquery.com/children/Je ne suis pas entièrement sûr si je vous comprends, mais cela peut vous aider.
OriginalL'auteur rgin
Vous devez garder à la fonction de rappel en contexte à l'aide de la " ce " mot qui désigne le courant de l'élément DOM. Sinon, vous aurez juste être saisir l'ensemble des éléments du DOM avec une classe de widget-title l'intérieur de votre rappel.
OriginalL'auteur Adam
Si vous sélectionnez par une classe, jquery permet de sélectionner tous les membres de cette classe. Est-il possible pour vous de mettre un ID ou un attribut à ce widget conteneur parent ou?
OriginalL'auteur Machinegon