2011-07-24 10 views
2

Dojoに新しいメソッドを追加する方法を教えてください。Dojoに新しいメソッドを追加する方法は?

は、それは私のために動作しますが、唯一のためのNodeList

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

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

はしかし、私は要素のために必要があります。

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

答えて

4

dojo.byId機能がdocument.getElementByIdのためだけの別名です。したがって、バニラのdomNodeを返します.DejoではなくElementに新しいメソッドを追加することをお勧めします。

Dojoは意図的にElementを変更しません。一部の人がDojoを実行することは悪い習慣と考えられます(たとえば、他のフレームワークと衝突する可能性があります)。

あなたがそれをしたい場合は、要素のプロトタイプに関数を追加することができます

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

次に、あなたが行うことができます:

dojo.byId("id").myMethod(); 
関連する問題