Ich benutze jQuery data(), um Metadaten zu speichern, aber es scheint, dass jQuery 1.4.4 und 1.4.3 beide Probleme haben. Einige Teile funktionieren und einige andere Teile funktionieren nicht.jQuery data() gibt undefined zurück
Zum Beispiel, ich habe
const UimConst = {
NODE_OBJECT: "nodeObject",
CHILDREN: "children",
PARENT: "parent",
SID: "sid",
COUNT: "count",
EXCLUDE: "exclude",
PARENT_COUNT: "pcount",
HEIGHT: "UimHeight"
};
Workspace.prototype.findAncestor = function(element){
if(this.ancestor == null){
this.ancestor = $(element);
this.ancestor.data(UimConst.HEIGHT, 0);
} else {
...
}
wo Element das DOM-Element ist. Dann erhalte ich den Wert, den ich wie folgt gespeichert habe,
var height = this.ancestor.data(UimConst.HEIGHT);
logger.debug("Current UI module height " + height);
leider ist der Rückgabewert nicht definiert.
das Problem weiter zu verfolgen, änderte ich den Code
if(this.ancestor == null){
this.ancestor = $(element);
this.ancestor.data(UimConst.HEIGHT, 0);
logger.debug("After set the ancestor height, the value is " + this.ancestor.data(UimConst.HEIGHT));
} else {
Der Rückgabewert im Protokoll ist „undefined“ wie auch zu sein. Wirklich frustriert.
Ich habe Daten() an einigen anderen Orten verwendet und sie funktionierten gut. Ich bin mir nicht sicher, was passiert ist. Irgendwelche Hinweise?
Das Projekt ist hier, wenn jemand will, um einen Blick nehmen:
http://aost.googlecode.com/svn/trunk/tools/tellurium-ide.
Nur prüfe Subversion und den folgenden Befehl ausführen:
mvn install
und dann die erzeugte .xpi Datei zu Firefox installieren.
Danach können Sie das Tellurium IDE Firefox-Plugin und JavaScript-Debugger-Firefox-Plugin öffnen, um die Ausführung zu verfolgen.
Für dieses Problem gehen Sie zu workspace.js und setzen Sie einen Breakpointer am Anfang der findAncestor() -Methode.
Mehr Details über Tellur IDE sind hier:
http://code.google.com/p/aost/wiki/TelluriumIde080RC1
Vielen Dank im Voraus,
John
Sind Sie sicher, dass 'Workspace.prototype.findAncestor' genannt wird? Vielleicht versuchen Sie, eine Art Ausgabe hinzuzufügen, die beweist, dass sie unmittelbar danach gesetzt wird: 'console.log ('Daten wurden gesetzt:' + this.ancestor.data (UimConst.HEIGHT));' – clarkf
Ja. Es wird genannt. Ich habe JavaScript-Debugger verwendet, um den Ausführungsablauf zu verfolgen. –