我使用jQuery data()來存儲元數據,但似乎jQuery 1.4.4和1.4.3都有問題。有些部件可以工作,其他部件不起作用。jQuery data()返回undefined
舉例來說,我有
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 {
...
}
其中元素是DOM元素。然後,我得到我存儲的值如下,
var height = this.ancestor.data(UimConst.HEIGHT);
logger.debug("Current UI module height " + height);
不幸的是,返回值是未定義的。
爲了進一步追查問題,我改變了代碼是
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 {
日誌中的返回值是「不確定」的可能。真的很沮喪。
我在一些其他地方使用數據(),他們工作得很好。不知道發生了什麼事。 任何提示?
該項目是在這裏如果有人想看一看:
http://aost.googlecode.com/svn/trunk/tools/tellurium-ide。
只是不要顛覆檢查出並運行以下命令:
mvn install
,然後將生成的.xpi文件安裝到Firefox。
之後,您可以打開Tellurium IDE Firefox插件和JavaScript調試器Firefox插件來跟蹤執行情況。
對於此問題,請轉到workspace.js並在findAncestor()方法的開頭設置breakpointer。
約碲IDE的更多細節在這裏:
http://code.google.com/p/aost/wiki/TelluriumIde080RC1
由於提前,
約翰
您確定調用了`Workspace.prototype.findAncestor`嗎?也許嘗試添加一些輸出,證明它在之後立即被設置:`console.log('data has been set:'+ this.ancestor.data(UimConst.HEIGHT));` – clarkf 2010-12-02 20:16:43
是的。它被稱爲。我使用JavaScript調試器來追蹤執行流程。 – 2010-12-02 20:18:09