2015-07-29 2 views
0

Quand je clique sur le 'x' ça ne marche pas, ça marche seulement quand je clique dehors (l'id #close a un remplissage de 3px) . J'ai essayé en assignant #id à l'étiquette i, il n'a même pas déclenché un événement. Que puis-je faire pour que tout ce qui se trouve à l'intérieur du #id se ferme lorsque l'événement click sera déclenché.Font génial comme un bouton, quand je clique sur la police ça ne marche pas ptoperly

html

<span id="close"><i class="fa fa-times-circle"></i></span> 

js

$('#close').click(function(event){ 
     if(event.target.id=='close'){ 
      $(this).parent().parent().remove(); 
      $(this).remove(); 
     } 
    }); 
+0

Essayez peut-être: $ ('# près .fa fois-cercle') au lieu de $ ("# près") – Tarek

+0

ne fonctionne pas, je suppose il y a un problème avec l'étiquette i ou quelque chose ... – Puni

Répondre

1

Votre code ne fonctionne pas comme prévu, car event.target.id n'est pas close chaque fois. Voici un JSFiddle pour illustrer le problème.

Ce que vous voulez faire est simplement de gérer l'événement click sur . Notez que $(this) est toujours le sélecteur courant:

$("#close").click(function(event) { 
    var $topParent = $(this).parent().parent(); 

    $(this).remove(); 
    $topParent.remove(); 
}); 
+0

vous avez raison code ahmed ne fonctionne pas si nous ne supprimons pas la condition if, mais j'ai eu le point donc j'ai accepté comme réponse de toute façon votre code expliquer tout. Je vous remercie – Puni

1

Pourquoi utiliser cette condition?

if(event.target.id=='close') 

J'ai créé ce jsFiddle et il fonctionne: JSFiddle

+0

D'accord, en supprimant la condition if cela fonctionne. En fait, je l'utilise pour m'assurer que seulement lorsque #id fermer est cliqué, l'événement se produira. Quoi qu'il en soit Merci @Ahmed – Puni

+0

Il devrait y avoir un ID AS à proximité de la page. Si vous voulez utiliser plus que close, distinguez-le avec un numéro d'identification ou un autre nom. – Tarek