2017-10-20 15 views
-2

Je suis plutôt nouveau à jQuery et je suis tombé sur quelque chose. Quelle est la différence entre ces extraits de code? Je pense qu'ils feront exactement la même chose.Quelle est la différence entre ces deux extraits de code jQuery?

$("p.expendable").on('mouseover', function(){ 
 
    $(this).remove(); 
 
}); 
 

 
$('p').on('mouseover', function() { 
 
    $('p.expendable').remove(); 
 
});

+0

Je n'ai aucune idée de ce que vous essayez de faire. OnMouseOver => me retirer? –

+0

Les deux sont différents! –

+0

la question est, quel code est correct –

Répondre

-1

délégué est plus propre

$(document).delegate("p.expendable", 'mouseover', function(){ 
    $(this).remove(); 
}); 

Il dit, si p.expendable est créé, la fonction attache à ce qui se supprime. (Désapprouvée!) Bonne prise sur celui-ci @epascarello

S'il vous plaît utiliser

$(document).on("p.expendable", 'mouseover', function(){ 
     $(this).remove(); 
    }); 

ou tout simplement

$("p.expendable").on('mouseover', function(){ 
      $(this).remove(); 
     }); 

Bonne programmation!

+1

Merci beaucoup! –

+0

Si vous voulez que les paragraphes d'un élément spécifique aient cette fonctionnalité, assurez-vous de remplacer le document par l'élément parent dont vous avez besoin. –

+1

Oui, l'utilisation de méthodes dépréciées est toujours plus propre ... lol Cela ne répond pas non plus à la question. – epascarello

1

Ils sont différents. Considérant le premier cas, si l'élément p actuellement plané a la classe expendable, il supprimera cet élément spécifique.

$("p.expendable").on('mouseover', function() { 
 
    $(this).remove(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class="expendable"> Testing</p> 
 
<p> Testing 2</p> 
 
<p> Testing 3</p>

En second cas, l'élément actuellement plané est une balise p indépendamment du fait qu'il a une classe ou non, il va supprimer tous les éléments p qui ont la classe « fongibles »

$('p').on('mouseover', function() { 
 
    $('p.expendable').remove(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class="expendable"> Testing</p> 
 
<p> Testing 2</p> 
 
<p> Testing 3</p>