J'ai un problème avec ce script et pour le reste de ma vie, je n'arrive pas à comprendre ce qui ne va pas. rapide passage en revue ce que j'ai:jQuery .click() ne se déclenche pas sur les liens créés dynamiquement avec .wrapInner()
Le code HTML:
<ul>
<li id="wildcard_1">
<div>
<a href="#">test</a>
</div>
</li>
</ul>
<a href="#" class="reset">reset</a>
Le jQuery:
// Main function
$("[id^=wildcard_]").children('div').children('a').click(function() {
$(this).replaceWith($(this).text());
});
// Temporary reset function
$("a.reset").click(function() {
$("[id^=wildcard_]").children('div').wrapInner('<a href="#"></a>');
});
Le lien "test" fonctionne comme il est censé la première fois est est être cliqué - il est en train de se transformer en texte brut). Afin de ne pas coller la majeure partie du script ici, j'ai créé une fonction temporaire qui encapsulera le contenu du div
, transformant le texte brut "test" en un lien. Et c'est là où ça va mal - l'écouteur .click()
de la première fonction ne se déclenchera plus sur ce lien créé dynamiquement et FireBug ne lance aucune erreur ni aucun avertissement.
Vous pouvez voir ce live sur jsFiddle: http://jsfiddle.net/rWz69/
Toute aide sur ce serait plus apprécié!
demandé il y a 1 minute, 23 secondes il y a répondu. Je suis sûr que tu es un cyborg, Nick. – Robert
Tout simplement génial, et sacrément rapide aussi! Chose amusante, la première pensée qui me traversa l'esprit après avoir vu ta réponse était "Dieu, mon sélecteur est moche" :) Bref, si ce n'est pas trop demander, vu que mon approche me rendait presque fou, pourrais-tu m'expliquer en juste quelques mots pourquoi exactement cela n'a pas fonctionné ainsi je peux l'éviter à l'avenir? Merci beaucoup, mon pote! –
+1 pour répondre si dang rapide et correctement pourrais-je ajouter. –