2011-07-24 5 views
2

Pourriez-vous dire comment ajouter une nouvelle méthode à Dojo?Comment ajouter une nouvelle méthode à Dojo?

Il fonctionne pour moi, mais seulement pour NodeList:

dojo.extend(dojo.NodeList, { 
    foo: function() { 
     alert(1) 
    } 
}); 

dojo.byId("foo").foo(); 

Mais, j'ai besoin pour élément:

dojo.byId("id").myMethod(); 

Répondre

4

La fonction dojo.byId est juste un alias pour document.getElementById. Par conséquent, il retourne un domNode de vanille, et ce que vous suggérez ajouterait une nouvelle méthode à Element, pas à Dojo. Dojo ne change pas intentionnellement d'élément, car cela est considéré comme une mauvaise pratique par certains (cela peut entrer en conflit avec d'autres frameworks, par exemple).

Si vous voulez le faire, vous pouvez ajouter des fonctions au prototype Element:

Element.prototype.myMethod = function() { 
    alert("My content is: " + this.innerHTML); 
}; 

Ensuite, vous pouvez faire:

dojo.byId("id").myMethod(); 
Questions connexes