スタックの操作は jQuery 自体が持つスタックの仕組みを利用しています。jQuery は pushStack メソッドで現在のインスタンスをスタックに積み、end メソッドで直前のインスタンスに戻すことができます。
Tag Plugin はこの特性を利用して、tag メソッドで HTML タグを生成して pushStack メソッドでスタックに積みます。gat メソッドで end メソッドでスタックから戻し、HTML タグを追加します。gat メソッドの名前は tag メソッドを逆に読んだものです。戻すや反対という意味を込めています。
また $.tag メソッドを使うと、スタックに積まずに HTML タグを生成できます。起点となる HTML タグを生成して組み立てるときに使えます。
Download Tag Plugin for jQuery 1.1.2
/*以下は div タグに a タグを追加する例です。tag メソッドで a タグを生成し、gat メソッドでその a タグを div タグに追加しています。
* Tag Plugin for jQuery 1.1.2
*
* Copyright(C) 2007 LEARNING RESOURCE LAB.
* http://postal-search-apis-and-solutions.blogspot.com/
*
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*/
(function($) {
// $.tag
$.tag = function(name) {
return jQuery('<' + name + ' />');
};
// tag
$.fn.tag = function(name) {
var self = this;
return self.pushStack($.tag(name));
};
// gat
$.fn.gat = function() {
var self = this;
return self.end().append(self);
};
})(jQuery); // function($)
<div id="r1"></div>以下は div タグに ul と li のリストタグ、さらに a タグを追加する例です。ul と li タグがスタックに積まれ、最終的に div タグまでさかのぼって追加されることになります。
<script type="text/javascript">
//<![CDATA[
jQuery(function($) {
$('#r1')
.tag('a')
.attr('href', 'http://developmentor.lrlab.to/postal/')
.text('Postal Search APIs & Solutions')
.gat();
});
//]]>
</script>
<div id="r2"></div>Tag Plugin は jQuery の振る舞いを理解する目的で作成したものですが、特定の場面でニーズがあるかもしれませんので公開します。ライセンスは jQuery と同じにしておきます。
<script type="text/javascript">
//<![CDATA[
jQuery(function($) {
$('#r2')
.tag('ul')
.tag('li')
.tag('a')
.attr('href', 'http://developmentor.lrlab.to/postal/digest.html')
.text('Postal Search Ajax API ダイジェスト')
.gat()
.gat()
.tag('li')
.tag('a')
.attr('href', 'http://developmentor.lrlab.to/postal/reference.html')
.text('Postal Search Ajax API リファレンス')
.gat()
.gat()
.gat()
//]]>
</script>
Learning jQuery: Better Interaction Design and Web Development With Simple Javascript Techniques Jonathan Chaffer Karl Swedberg by G-Tools |
0 件のコメント:
コメントを投稿