| 

.NET C# Java Javascript Exception

1
Moin allerseits.

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:

http://a1at.pageworkx.de/index.php

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.

Es geht hier um Zeile 250 in http://a1at.pageworkx.de/includes/js/jquery.asyncScroll.js

Kann mir bitte jemand einen Hinweis geben?
16.02.2012
johny7 521 1 8
1
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?
Nicolai Schönberg 16.02.2012
1
Nachtrag: Der Fehler lautet:

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?
Nicolai Schönberg 16.02.2012
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 16.02.2012
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
Nicolai Schönberg 16.02.2012
Ja jetzt :) In der Version von 10:28 war es "* Refresh durchführen (z.B. nach Ändern der Fenstergröße)"
Floyd 16.02.2012
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.
johny7 16.02.2012
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
Nicolai Schönberg 16.02.2012
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.
johny7 16.02.2012
So. Wenn ihr das Skript neu lädt, wird asyncScroll mit ausgegeben ;-)
johny7 16.02.2012