2010-02-22 56 views
2
var allRows = this.getTbodyEl().rows; 
for (var i = allRows.length - 1; i >= 0; i--){ 
var thisRowID = allRows[i].id; 
// Clean up any existing Drag instances 
if (myDTDrags[thisRowID]) { 
    myDTDrags[thisRowID].unreg(); 
    delete myDTDrags[thisRowID]; 
} 
// Create a Drag instance for each row 
myDTDrags[thisRowID] = new YAHOO.util.DDProxy(thisRowID); 
}; 

我不明白爲什麼,但上面的代碼沒有產生我的表中的每一行DDProxy對象。我已經驗證了DDProxy代碼是所有加載,並通過將一個字符串引用一個DOM元素正常運行:YUI:字符串工作,但包含字符串的var不?

myDTDrags[thisRowID] = new YAHOO.util.DDProxy('yui-rec30'); 

這使得預期中的相應行拖動!我還使用typeof驗證了thisRowID的值確實是'string'類型的值,並且該字符串包含適當行元素的id。

我錯過了什麼?

+0

迷人。如果是我,我會看到如果將「thisRowID」設置爲「new String(allRows [i] .id)'會發生什麼事情,但我很奇怪。 – Pointy 2010-02-22 23:58:19

回答

1

更新:我上面發佈的代碼是正確的。我錯了,因爲我的thisRowID變量的內容沒有包含對適當的行元素的引用!

+0

很好的工作!我爲你感到高興。通常情況下,當某些事情看起來不可能是真的時,它不是:-) – Pointy 2010-02-23 00:04:22