Question

J'ai le code suivant

$("#logoutLink").click(function(event) {

    event.preventDefault();

    var dataString = "action=confirm";

    $.ajax({
        type: "POST",
        url: "requests.php",
        data: dataString,
        success: function(msg) {
            if (msg == "success") {
               alert('logged out');
            } else {
                showNotification("error", "" + msg + "");
            }
        },
        error: function() {
            showNotification("error", "Could not log you out at this time, try again.");
        }
    });

    return false;
});

et un lien avec id="logoutLink"

le PreventDefault ne fonctionne pas du premier coup car le système de connexion n'actualise pas le lien et ajoute du contenu HTML avec des liens, dans lequel se trouve le lien de déconnexion et donc l'élément n'existe pas en HTML, je sais que c'est le problème, mais ma question est de savoir comment puis-je faire savoir que du contenu HTML a été ajouté avec l'identifiant de lien logoutLink sans actualisation de la page ?

Était-ce utile?

La solution

Votre question n'est pas claire, mais si vous ajoutez le lien de manière dynamique, vous devriez utiliser soit .live('click', ...), ou le nouveau jQuery 1.7 .on().

Autres conseils

Votre question est un peu déroutante, mais essayez d'utiliser live() pour lier votre gestionnaire d'événements :

$("#logoutLink").live('click', function(event) {
    // ...

Voir http://api.jquery.com/live/ pour plus d'informations.

vous devez ajouter le gestionnaire de clics $("#logoutLink").click(function(event) {} seulement après que le système de connexion ait ajouté les liens, je ferais donc ce qui suit

function addHandlers(){
    $("#logoutLink").click(function(event) {
         event.preventDefault();
         // anything else
    }
}

$(document).ready(function(){
    addHandlers();
});

alors appelle aussi addHandlers(); quand les liens sont ajoutés

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top