jQuery - Ajouter cliquez sur l'événement à Div et aller sur le premier lien trouvé
Je pense que j'ai été trop de temps à regarder cette fonction et juste coincé à essayer de comprendre le bien propre façon de le faire.
C'est une fonction jQuery qui ajoute un événement click pour tout div
qui a un click
classe CSS. Lorsque que div.click
est cliqué, il redirige l'utilisateur vers le premier lien qui s'y trouvent.
function clickabledivs() {
$('.click').each(
function (intIndex) {
$(this).bind("click", function(){
window.location = $( "#"+$(this).attr('id')+" a:first-child" ).attr('href');
});
}
);
}
Le code fonctionne tout simplement bien que je suis assez sûr qu'il y est assez de meilleure façon de l'accomplir, spécialement le sélecteur, je suis en utilisant: $( "#"+$(this).attr('id')+" a:first-child" )
. Tout semble long et lent. Des idées?
S'il vous plaît laissez-moi savoir si vous avez besoin de plus de détails.
Merci!
PS: j'ai trouvé quelques très belles jQuery analyse comparative de référence de Project2k.de ici:
http://blog.projekt2k.de/2010/01/benchmarking-jquery-1-4/
Vous devez vous connecter pour publier un commentaire.
En fonction du nombre de ces
div.click
éléments que vous avez, vous pouvez utiliser l'événement de la délégation pour gérer ces clics. Cela signifie en utilisant un seul gestionnaire d'événements pour tous les divs qui ont leclick
classe. Puis, à l'intérieur de ce gestionnaire d'événement, votre de rappel des actes fondés sur le quidiv.click
l'événement provient de. Comme ceci:Moins de gestionnaires d'événements, meilleure mise à l'échelle - plus
div.click
éléments qui ne ralentit pas votre gestion des événements.optimisé délégation avec jQuery 1.7+
Au lieu de lier tous les clics sur la charge, pourquoi ne pas les lier au clic? Devrait être beaucoup plus optimal.
Je serais probablement faire quelque chose comme;
'a'
au lieu dea
.