Ce code ne fonctionne pas comme prévu:événement Click ne peut pas déclencher sur après-ajoutée portées
function makeToken()
{
var $span = $("<span>new</span>");
$span.bind('click',function(){
alert('test');
})
return $span;
}
$('h1, #content p, #content h2').after(makeToken());
éléments Span apparaîtront après que tous ces éléments ('h1, p #content, #content h2'), mais lorsque je clique sur les plages, l'événement click n'est pas déclenché. Pourquoi pas? Quelle est la solution?
Vous ne savez pas, mais vous devrez peut-être ajouter l'élément au document avant d'essayer de lier des événements ou vous pouvez utiliser live() comme suggéré dans l'autre réponse, qui liera automatiquement toutes les nouvelles correspondances. –
@David: Vous pouvez lier les gestionnaires avant que les éléments ne soient ajoutés (voir mon exemple ci-dessus). Et '.live()' ne se lie pas automatiquement aux nouveaux éléments. Il utilise la délégation d'événements à l'échelle du document. IMO, la délégation est mieux utilisée sur les régions locales de la page, ce qui fait partie de la raison pour laquelle je n'utilise jamais '.live()'. – user113716