.data()
jQueryの関数を介してhtml要素のプロトタイプにアクセスしようとしています。これまでのところ、私は非常に混乱しています。
これは私のコードです:
// start prototype definition for myWidget
var myWidget = function() {
console.log('my widget is alive.');
return this;
};
myWidget.prototype.chosenSelect = [];
myWidget.prototype.init = function() {
this.chosenSelect = $('#chooseMe');
// test 1
console.log(this.chosenSelect.data());
// test 2
console.log(this.chosenSelect.data('chosen'));
// test3
console.log(this.chosenSelect.data('Chosen'));
// test4
var chosenObject = this.chosenSelect.data();
console.log(chosenObject.chosen);
};
上記のテスト1は、Chromedevtoolsを使用して確認できたオブジェクトを返します。オブジェクトは次のようになります。
Object
chosen: Chosen
changeCallbacks: Array[0]
etc
etc
etc
chosen
そのデータオブジェクト内のオブジェクトにアクセスしたい。ただし、テスト2から4はすべて戻りundefined
ます。何が間違っているのでしょうか?
編集
プロトタイプは、別のライブラリから要素に追加されています。これは、割り当てが発生する場所の抜粋です。
Chosen.prototype.init = function(select, zidx, isIE7) {
this.select = select;
this.select.data('chosen', this);