jGlycyのソースコードは以下の通りです。(バージョンは1.0rc)
1 (function($, prefix, jg){
2 $[jg] = $({});
3 $[jg].extend({
4 invoke: function(nodes) {
5 nodes.each(function(){
6 var node = this;
7 var funcs = $(node).attr(prefix).split(',');
8 $(funcs).each(function(){
9 var arg = $(node).attr(prefix + ":" + this);
10 if(arg) {
11 eval('var options = {' + arg + '}');
12 } else {
13 var options = {};
14 }
15 if($.fn[this]) {
16 $(node)[this](options);
17 }
18 });
19 });
20 },
21 invokeElement: function(node) {
22 $[jg].invoke($("*[" + prefix + "]", node));
23 }
24 });
25 $(document).ready(function(){
26 $[jg].invokeElement(document);
27 });
28 })(jQuery, "jg", "jg");
グローバル領域を汚染をしないように、jQueryにjgというプロパティを設けて、
その中にjGlycyの動作に必要な関数を定義してあります。
このプロパティ名は28行目の第三引数を変えることにより、自由に変更することができます。
jGlycyで定義してある関数は2つ
jg属性とjg_関数名属性をパースして引数で与えられた要素に 指定プラグイン機能を割り当てる関数。
jgという文字列は、28行目の第二引数を変更することにより、自由に定義することができる。
指定した要素内にある要素をinvokeし、jg属性を持つ要素を評価する関数。
HTMLが読み込まれた際、document指定でこの関数が実行される。(26行目)
Ajax等で、HTMLが更新された際の要素再評価などにも使用できる