jQueryは、プラグインで手軽に機能を実装できるのが特徴です。プラグイン・ディレクトリ(Plugins | jQuery Plugins)に沢山のプラグインが公開されていますが、作り方を調べてみたら、かなり簡単に自分でも作成できるよう。以下の記事は分かりやすいチュートリアルになっています。
jQuery For Programmers: Part 1
プラグインを作成するためのテンプレートは、以下のような感じ。jQuery.fn.myplugin のmyplugin の部分は、自分が作りたいプラグインの名称(&実行する際のファンクション名)。config は、プラグインに渡す引数を、連想配列で複数指定することができる。あとは、this でプラグインを適用するHTML要素が取れるので、DOMなどで自由に操作できる。
(function() {
jQuery.fn.myplugin = function(config){
// 引数のデフォルト値を渡す {}内は、カンマ(,)で区切って複数可能
config = jQuery.extend({
value1: "Default value 1",
value2: "Default value 2"
},config);
// プラグイン内のthis は、$("div.target") など指定したHTML要素
var target = this;
target.append("Hello jQuery Plugin !<br />"
+ config.value1 + "<br />" + config.value2);
};
})(jQuery);
このテンプレートを元に、自分のプラグインを作成したら、それを jquery.myplugin.js などの名前で保存。サーバにアップロードして、HTMLファイル内のhead内で読み込む。 そして、自分のプラグインを実行する対象のHTML要素を、jQueryのセレクターで指定。この例では、<div class="target"></div>というHTML要素に対して、mypluginを実行。
<script src="./jquery-latest.js" type="text/javascript"></script>
<script src="./jquery.template.js" type="text/javascript"></script>
<script type="text/javascript">
<!--
// HTMLファイルの読み込みが終了したら自動実行される、jQueryのメソッド
$(document).ready(function(){
// 引数値を渡す {}内は、カンマ(,)で区切って複数可能
$("div.target").myplugin({value1: "This is value 1"});
});
//-->
</script>
</head>
<body>
<div class="target"></div>
以下、通常のHTMLをつらつらと
このHTMLを表示すると、<div class="target"></div>の内部に、Hello jQuery Plugin ! が表示されるはず。
以前にprototype.jsで作った、Movable Type の新着記事を、個別のブログ記事ページにカテゴリーごとに表示する機能を、
Prototype.js を使って、MovableTypeで最新記事を表示する
jQueryのプラグインにしてみた。MTテンプレートは以下。
(function() {
jQuery.fn.mtNewEntry = function(config){
// 引数のデフォルト値を渡す {}内は、カンマ(,)で区切って複数可能
config = jQuery.extend({
category: "1,0"
},config);
arrayCategory = config.category.split(",");
var cat_id = arrayCategory[0];
var target = this;
// 最新記事をカテゴリ毎に5件 JSON形式で出力
var articles = {
<MTCategories>
"<$MTCategoryID$>" : {
"id" : "<$MTCategoryID$>",
"label" : "<$MTCategoryLabel$>",
"links" : [
<MTEntries lastn='5'>
{"title" : "<$MTEntryTitle encode_js="1"$>"
,"url" : "<$MTEntryPermalink$>"
, "excerpt" : "<$MTEntryExcerpt encode_js="1"$>"}
<MTEntriesFooter> <MTElse>, </MTElse> </MTEntriesFooter>
</MTEntries>
]
},
</MTCategories>
"id" : "end"
};
function showList(id) {
var list = "";
for ( var i = 0; i < articles[id].links.length; i++) {
list += '<h4><a href="' + articles[id].links[i].url + '">' + articles[id].links[i].title + '</a></h4><p>' + articles[id].links[i].excerpt + '</p>';
};
return list;
};
target.append(showList(cat_id));
};
})(jQuery);
これを、jquery.mtrecents.js などの名前で保存し、ブログの個別ページのテンプレートで読み込み。
<script src="http://www.goodpic.com/mt/jquery.mtrecents.js" type="text/javascript"></script>
<script type="text/javascript">
<!--
$(document).ready(function(){
// 引数値を渡す {}内は、カンマ(,)で区切って複数可能
$("div#mt-new-entries").mtNewEntry({category: "<MTEntryCategories><$MTCategoryID$>,</MTEntryCategories>0"});
});
//-->
</script>
</head>
あとは、テンプレート内で、そのカテゴリーの新着記事リストを表示したい場所に、<div id="mt-new-entries"> </div> を埋め込めばよい。
こんな風に、jQuery のプラグインはかなり簡単に作成できるので、ちょっとしたjavascriptでもプラグインにしておくことで、ウェブサイトの管理がしやすくなるかもしれません。

ブックマーク & はてなスター
コメント