Comment puis-je ajouter une classe spécifique à un élément en cliquant sur un div en utilisant jquery?

Designer

J'ai la liste d'éléments / articles suivante:

<div class="list-item">
<div class="store-name">Apple</div>
<div class="hotdeal-tag">%</div>
<div class="popup-tip">10% OFF</div>
</div>

<div class="list-item">
<div class="store-name">Microsoft</div>
<div class="hotdeal-tag">%</div>
<div class="popup-tip">10% OFF</div>
</div>

<div class="list-item">
<div class="store-name">Linux</div>
<div class="hotdeal-tag">%</div>
<div class="popup-tip">10% OFF</div>
</div>

et je veux à chaque fois que je clique sur le div avec la classe "hotdeal-tag" pour ajouter une nouvelle classe ".show-me" dessus. Le problème avec mon code, tel qu'il est maintenant, est que lorsque je clique sur le div "hotdeal-tag", il affiche les trois divs "popup-tip". Comme je suis nouveau dans jquery, je ne peux pas comprendre ce que je fais de mal.

Voici mon extrait de code:

$( ".list-item" ).each(function() {
    $('.hotdeal-tag').on("click", function(){
		$('.popup-tip').toggleClass('show-me');
	});
   });
.list-item {
  width:80%;
  margin-bottom:10px;
  padding:10px;
  background:#eee;
  position:relative;
  overflow:hidden;
}

.store-name {
  display:inline-block;
  float:left;
}

.hotdeal-tag {
  width:25px;
  height:25px;
  text-align:center;
  line-height:20px;
  background:red;
  color:#fff;
  border-radius:4px;
  font-weight:bold;
  float:right;
  cursor:pointer;
}

.popup-tip {
  position:absolute;
  right:45px;
  font-weight:bold;
  font-size:11px;
  top:12px;
  padding:3px;
  background:#fff;
  border-radius:4px;
  display:none;
}

.show-me {
  display:block!important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<div class="list-item">
<div class="store-name">Apple</div>
 <div class="hotdeal-tag">%</div>
 <div class="popup-tip">20% OFF</div>
</div>

<div class="list-item">
<div class="store-name">Microsoft</div>
 <div class="hotdeal-tag">%</div>
 <div class="popup-tip">10% OFF</div>
</div>

<div class="list-item">
<div class="store-name">Linux</div>
 <div class="hotdeal-tag">%</div>
 <div class="popup-tip">35% OFF</div>
</div>

Et voici le JSFIDDLE

Chris Li

Parce que vous interrogez tous les .popup-tips avec $ ('. Popup-tip'), vous pouvez utiliser le sélecteur de frères sur le div cliqué pour ajouter une classe au .popup-tip de votre choix.

$( ".list-item" ).each(function() {
    $('.hotdeal-tag').on("click", function(){
		$(this).siblings('.popup-tip').toggleClass('show-me');
	});
   });
.list-item {
  width:80%;
  margin-bottom:10px;
  padding:10px;
  background:#eee;
  position:relative;
  overflow:hidden;
}

.store-name {
  display:inline-block;
  float:left;
}

.hotdeal-tag {
  width:25px;
  height:25px;
  text-align:center;
  line-height:20px;
  background:red;
  color:#fff;
  border-radius:4px;
  font-weight:bold;
  float:right;
  cursor:pointer;
}

.popup-tip {
  position:absolute;
  right:45px;
  font-weight:bold;
  font-size:11px;
  top:12px;
  padding:3px;
  background:#fff;
  border-radius:4px;
  display:none;
}

.show-me {
  display:block!important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<div class="list-item">
<div class="store-name">Apple</div>
 <div class="hotdeal-tag">%</div>
 <div class="popup-tip">20% OFF</div>
</div>

<div class="list-item">
<div class="store-name">Microsoft</div>
 <div class="hotdeal-tag">%</div>
 <div class="popup-tip">10% OFF</div>
</div>

<div class="list-item">
<div class="store-name">Linux</div>
 <div class="hotdeal-tag">%</div>
 <div class="popup-tip">35% OFF</div>
</div>

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

TOP liste

  1. 1

    Filtrer le dataframe basé sur plusieurs colonnes d'un autre dataframe

  2. 2

    Laravel SQLSTATE [HY000] [1049] Base de données inconnue 'previous_db_name'

  3. 3

    Enregistrer le chemin de l'image de la galerie vers la base de données de la salle et l'afficher dans la liste des recycleurs

  4. 4

    Comment envoyer plusieurs variables de la lame au contrôleur

  5. 5

    Comment afficher du texte au milieu de div avec une couleur d'arrière-plan différente?

  6. 6

    Microsoft.WebApplication.targets

  7. 7

    Échec de l'exécution de 'insertBefore' sur 'Node': le paramètre 1 n'est pas de type 'Node'

  8. 8

    System.Data.SqlClient.SqlException: 'Nom de colonne non valide' ApplicationRoleId '.'

  9. 9

    Comment définir du texte dans un QLabel et afficher les caractères '<>'?

  10. 10

    Comment analyser un fichier avec un tableau d'objets JSON en utilisant Node.js?

  11. 11

    Concaténer des variables dans ansible

  12. 12

    Comment centrer un div tout en utilisant la transition et transformer avec l'échelle

  13. 13

    Filtrer les données en fonction des conditions d'une trame de données

  14. 14

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  15. 15

    ESP8266 HADRWARE MINUTERIE, USA pour cocher une macro étrange

  16. 16

    comment afficher un bouton au-dessus d'un autre élément ?

  17. 17

    php ajouter et fusionner des données de deux tables

  18. 18

    Stop jQuery execution after one time execution

  19. 19

    Pourquoi Phantomjs ne fonctionne pas avec ce site ?

  20. 20

    obtenir le nombre de marqueur affiché sur la carte

  21. 21

    Redirection HTTP vers HTTPS dans Java à l'aide de HTTPURLConnection

chaudétiquette

Archive