オブジェクト選択したDOMにjQueryプラグインへのアクセスを与えるが、私は彼の文書をint概説パターンに従わないのjQueryのプラグインを書くことを試してい
(function($){
$.fn.insert = {
'hello': function(text){
$(this).text(text);
},
'goodbye': function(){
alert('goodbye');
}
}
})(jQuery);
正しい初期化しますが、おそらく明らかなように、はありません、この形式で
$(document).ready(function(){
$('#test').insert.goodbye();
$('#test').insert.hello('blahblahblah');
});
:ページが、このコードでこのプラグインをインスタンス化はそうではありません。 firebugのthis
を調べると、それに含まれる機能に属するスコープが表示されます。 (キューフェイスパーム)。
「hello」の内部で、選択したDOMオブジェクトにアクセスするにはどうすればよいですか?私は本当になぜ、なぜ、どうやってこのような方法でプラグインを作るべきではないのかについて議論することに興味はありません。それはもっと私にとって学問的なものです。
P.S.私はまた、hello()
部分が実行しようとすると、このエラーが発生することに注意してください:doc.createDocumentFragment is not a function
。
(function($){
$.fn.insert = {
'el': this,
'hello': function(text){
$(this.el).text(text);
},
'goodbye': function(){
alert('goodbye');
}
}
})(jQuery);
UPDATEがコードにこの更新プログラムを作りました。 FYI、Firebug がの場合、this.el
は問題のDOMオブジェクトを参照していますが、まだtext
は渡された文字列を保持していますが、まだテキストを要素に挿入していません。
これを実行すると、this.elはグローバルオブジェクト(ウィンドウ) – Homer6