Domanda

Ho il seguente codice

$("#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;
});
.

e un link con id="logoutlink"

PreventDefault non funziona la prima volta perché il sistema di accesso non aggiorna il collegamento e aggiunge contenuto HTML con collegamenti, in cui è il link di disconnessione e quindi l'articolo non esiste in HTML, so che questo è ilProblema, ma la mia domanda è come farei sapere che il contenuto HTML è stato aggiunto con link ID LogoutLink senza pagina Aggiorna?

È stato utile?

Soluzione

La domanda non è chiara, ma si aggiunge il collegamento dinamicamente, è necessario utilizzare .live('click', ...) o il nuovo JQuery 1.7 .on().

Altri suggerimenti

La tua domanda è un po 'confusa, ma prova a utilizzare live() per legare il gestore di eventi:

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

Vedi http://api.jquery.com/live/ per ulteriori informazioni.

.

È necessario aggiungere il gestore di clic $("#logoutLink").click(function(event) {} solo dopo che il sistema di accesso aggiunge i collegamenti, quindi farei il seguente

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

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

Quindi chiamare anche addHandlers(); quando vengono aggiunti i collegamenti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top