2010-02-22 3 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); 
}; 

Je n'arrive pas à comprendre pourquoi, mais le code ci-dessus ne donne pas un objet DDProxy pour chaque ligne de ma table. J'ai vérifié que le code DDProxy est tout chargé et fonctionne correctement en passant une référence de chaîne à un élément DOM:YUI: String fonctionne, mais une var contenant une chaîne ne fonctionne pas?

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

Cela rend la ligne correspondante draggable comme prévu! J'ai également vérifié, en utilisant typeof, que la valeur de thisRowID est bien du type 'chaîne' ET que la chaîne contient l'id des éléments de ligne appropriés.

Qu'est-ce que j'ai manqué?

+0

Fascinant. Si c'était moi, je verrais ce qui se passerait si je mettais "thisRowID" à 'new String (allRows [i] .id)' mais je suis bizarre. – Pointy

Répondre

1

MISE À JOUR: Mon code affiché ci-dessus est correct. Je me suis trompé en ce que le contenu de ma variable thisRowID ne contenait PAS de référence à un élément row approprié!

+0

Bon travail! Je suis content pour toi. Souvent, quand quelque chose semble ne pas pouvoir être vrai, ce n'est pas :-) – Pointy

Questions connexes