Bonjour,
Voilà j'ai fait un petit code :

$('.alert[role="alert"]').on("click", '.close', function () {
        $(this).parents('.alert[role="alert"]').fadeOut('1000');
    });

Il fonctionne bien si l'élément est déjà dans la page mais si elle est generer en JS, bas il est pas content car il ne fait pas partie du DOM (je me souviens plutot trop comment ça se dit ^^)
Je génére le code ainsi :

ReturnMSG.find('.alert').remove();
            ReturnMSG.prepend('<div class="alert alert-'+data.Type+' alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>'+data.Message+'</div>');

Ceci est pour l'inscription sur mon site...
Et donc, j'essaye de faire la croix rien ne se passe, et j'ai regarder avec firefox, lui même me dit qu'il n'y a pas de JS pour la div...
Merci de votre aide.

Cordialement;

3 réponses


TokaLazy
Réponse acceptée

Il faut que tu assigne la fonction ".on" a un élément qui était déjà present avant la génération de ton code. (le mieux c'est body, toujours la ^^)

$('body').on('click', '.alert[role="alert"] .close', function() {
 // Ton code
});

Merci de ton aide :D
J'avais pas du tout pensé à le mettre au body :)

Il y a une vidéo de Grafikart sur le sujet
il y explique aussi la propagation (bubbling) et la différence entre target et currentTarget