opensocial-jqueryでのタブ
gadget.xml
<div id="tabs"> <ul> <li><a href="#tab1">タブ1</a></li> <li><a href="#tab2" >タブ2</a></li> </ul> <div id="tab1">タブ1のコンテンツ</div> 2のコンテンツ</div> </div> <script type="text/javascript"> $("#tabs").tabs(); </script>
opensocial-jquery.js
/** * Tabs */ $.fn.tabs = function(fn) { return this.each(function() { var tabset = new gadgets.TabSet(null, null, this); tabset.alignTabs('left'); $('ul', this) .find('li a') .each(function(i) { var content = $('#' + this.href.split('#')[1]).get(0); tabset.addTab($(this).html(), { tooltip: this.title, contentContainer: content, callback: function () { if (fn) fn.apply(content, [i, content]); } }); }) .end() .remove(); }); };
- gadgets.TabSetコンストラクタの第3引数は、タブを配置する位置となるDOM要素。
- addTab()の第一引数はタブの表示名
- addTab()の第2引数は規定のオブジェクト。
- contentContainer:タブの内容
- callback:タブが選択された際のコールバック関数
- tooltip:タブのツールチップ
コールバック関数にはeachのインデックスを渡してるので、タブ番号に応じた制御ができる。