jQuery-Bind-Popstate-Ereignis nicht bestanden

Lesezeit: 2 Minuten

Benutzer-Avatar
Jocelyn LECOMTE

Ich codiere eine kleine Demo für die History-API. Und ich kämpfe damit:

$(window).bind('popstate',  
    function(event) {
        console.log('pop: ' + event.state);
    });

Es protokolliert “pop: undefined”, wenn ich auf die Schaltfläche “Zurück” klicke …

Aber wenn ich das stattdessen mache, funktionieren die Dinge wie erwartet:

window.onpopstate = function(event) {
    console.log('pop: ' + event.state);
};

Es protokolliert ‘pop: [object Object]’ diesmal…

Es ist also so, als würde jQuery das Ereignisobjekt nicht an den Rückruf übergeben.
Gibt es ein Problem mit jQuery? Oder habe ich etwas vermasselt?

  • Welcher Browser? Haben Sie schon stackoverflow.com/questions/4688164/window-bind-popstate gesehen?

    – Mattball

    24. April 2012 um 14:28 Uhr

  • Danke für deinen Kommentar, es hat mir geholfen, besser zu verstehen, was das Problem ist, also habe ich meine Frage ein wenig geändert. Es ist nicht dasselbe wie das, auf das Sie zeigen, da dies beim ersten Laden kein Problem darstellt.

    – Jocelyn LECOMTE

    24. April 2012 um 14:53 Uhr

Benutzer-Avatar
KSev

Zunächst erhalten Sie ein normalisiertes jQuery-Ereignisobjekt. Im zweiten Fall erhalten Sie das Ereignisobjekt des Browsers. Ich gehe davon aus, dass jQuery die Normalisierung aller neuen HTML5-Ereignisse und zugehörigen Attribute noch nicht abgeschlossen hat. Bis dahin müssen Sie auf das ursprüngliche Ereignisobjekt zugreifen. Sie können dies über das jQuery-Ereignisobjekt über die Eigenschaft originalEvent tun. Einige zusätzliche Details und Beispiele finden Sie hier: stackoverflow.com/questions/7860960/popstate-returns-event-state-is-undefined

event.originalEvent.state

  • Schöner Fang! Ich habe diese Frage nicht gesehen, als ich gesucht habe, bevor ich sie gestellt habe 🙁

    – Jocelyn LECOMTE

    24. April 2012 um 15:35 Uhr

  • Vielen Dank! Ich würde gerne die volle Anerkennung für den Fang übernehmen, aber Stackoverflow hat es für mich getan. Ich habe es zufällig in der verwandten Liste am rechten Rand bemerkt. Alles Gute für Ihre Entwicklungsbemühungen!

    – KSew

    24. April 2012 um 15:46 Uhr

1135360cookie-checkjQuery-Bind-Popstate-Ereignis nicht bestanden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy