Ich habe gestern schon mein Plugin vorgestellt. Ich habe jetzt allerdings ein Problem mit $(this).data(). Das Problem kann man am Besten auf folgender Seite sehen:
Beim resize des Fensters wird die Methode 'refresh' von asyncScroll() aufgerufen, um einige Elemente zu repositionieren. Scheinbar kann innerhalb dieser Methode aber nicht auf die DOM-Daten des Objektes zugegriffen werden. Die Daten sind definitiv noch vorhanden - so zeigt es mir zumindest Firebug.
Ins blaue geschossen: Ist asyncScroll bei 'var data = $this.data(asyncScroll);' definiert? Und was muss ich auf deiner Beispiel Seite genau machen damit der Fehler auftritt? Seite verkleinern?
In der Version die jetzt gerade online ist, ist Zeile 258 ein Kommentar. Sicher das die korrekte Version online ist oder verhaut sich der JavaScript-Interpreter da mal wieder mit den Zeilennummern?
Floyd: Ich hab die javascript datei mit Notepad++ geöffnet (direkt die url). Bei mir ist Zeile 258: 'var status = data.status;' - Entweder data ist undefined oder data.status. Ich bin mir nicht sicher. Ein kommentar kann ich in der Zeile nicht sehen
Der Fehler tritt auf, wenn man die Seite verkleinert.
Ich habe mir in refresh() einmal folgendes Ausgeben lassen: alert($this.data(asyncScroll)); Ergebnis: undefined. Wenn ich mir aber alert($this.attr('id')) ausgeben lasse, bekomme ich ganz normal startseite_aScr, also die richtige ID vom richtigen Element. Ich kann euch mal einen Debugmodus dafür einbauen. Ruft die Seite mit ?debug=true auf.
und was passiert wenn du 'alert(asyncScroll);' machst? es kann nicht an $this oder $this.data liegen - entweder das element liefert nichts zurück beim aufruf von data oder asyncScroll ist unbekannt
Das habe ich auch schon ausgeben lassen. asyncScroll ist bekannt. Und wenn ich in Firebug nachsehe, ist dort auch noch unter diesem Key alles nötige abgespeichert. Ich kann das ja mal mit ausgeben lassen.
Uncaught TypeError: Cannot read property 'status' of undefined
methods.refreshjquery.asyncScroll.js:258
$.fn.(anonymous function)jquery.asyncScroll.js:657
(anonymous function)jquery.asyncScroll.js:138
jQuery.event.dispatchjquery.min.js:3256
jQuery.event.add.elemData.handle.eventHandle
das objekt was zurück bekommt hat also keine property status. Kannst du mal ein alert für data bauen?
Ich habe mir in refresh() einmal folgendes Ausgeben lassen: alert($this.data(asyncScroll)); Ergebnis: undefined.
Wenn ich mir aber alert($this.attr('id')) ausgeben lasse, bekomme ich ganz normal startseite_aScr, also die richtige ID vom richtigen Element. Ich kann euch mal einen Debugmodus dafür einbauen. Ruft die Seite mit ?debug=true auf.