您能告诉我们如何向Dojo添加新方法吗?
它适用于我,但仅适用于 NodeList :
dojo.extend(dojo.NodeList, {
foo: function() {
alert(1)
}
});
dojo.byId("foo").foo();
但是,我需要元素:
dojo.byId("id").myMethod();
答案 0 :(得分:4)
dojo.byId
函数只是document.getElementById
的别名。因此它返回一个vanilla domNode,你建议将一个新方法添加到Element,而不是Dojo。
Dojo故意不会改变Element,因为某些人认为这是不好的做法(例如,它可能会与其他框架发生冲突)。
如果你想这样做,你可以为Element的原型添加函数:
Element.prototype.myMethod = function() {
alert("My content is: " + this.innerHTML);
};
然后你可以这样做:
dojo.byId("id").myMethod();