Frage

Ich habe den folgenden Code

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

und ein Link mit id="logoutLink"

PreventDefault funktioniert beim ersten Mal nicht, weil das Anmeldesystem den Link nicht aktualisiert und HTML-Inhalte mit Links hinzufügt, in denen sich der Abmeldelink befindet und das Element daher nicht in HTML vorhanden ist. Ich weiß, dass dies das Problem ist, aber Meine Frage ist, wie ich es wissen lassen kann, dass HTML-Inhalte ohne Seitenaktualisierung mit der Link-ID logoutLink hinzugefügt wurden.

War es hilfreich?

Lösung

Ihre Frage ist nicht klar, aber wenn Sie den Link dynamisch hinzufügen, sollten Sie beides verwenden .live('click', ...), oder das neue jQuery 1.7 .on().

Andere Tipps

Ihre Frage ist etwas verwirrend, aber versuchen Sie es mit live() So binden Sie Ihren Event-Handler:

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

Sehen http://api.jquery.com/live/ für mehr Informationen.

Sie müssen den Click-Handler hinzufügen $("#logoutLink").click(function(event) {} Erst nachdem das Anmeldesystem die Links hinzugefügt hat, würde ich Folgendes tun

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

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

dann ruf auch an addHandlers(); wenn die Links hinzugefügt werden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top