利用者:Frozen-mikan/EnhancedCollapsibleTables.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
/* 折りたたみ可能なテーブルを拡張
* テーブルヘッダーをクリックした時に開閉するようにする。
*/
$(function () {
function getButton(id){
return document.getElementById("collapseButton" + id)
}
/* 自身か親要素にリンクを含む場合に true を返す */
function isContainingAnchorInParents(node) {
function isAnchor(node) { return /^a$/i.test(node.tagName); }
function parentNodes(node) {
if ( !node
|| !node.parentNode) { return false; }
var pnode = node.parentNode;
if (isAnchor(pnode)) {
return true;
} else {
return parentNodes(pnode);
}
}
if (isAnchor(node)) return true;
return parentNodes(node);
}
/* 折りたたみ開閉用のボタンを探す */
var id = 0, button=null;
for (button = getButton(id); button; ++id, button = getButton(id)) (function (id){
if ( !button
|| !button.parentNode
|| !button.parentNode.parentNode) return;
var th = button.parentNode.parentNode;
$(th).click(function (e){
var src = e.target || e.srcElement;
if (/^th$/i.test(src.tagName)) {
collapseTable(id);
} else if (!isContainingAnchorInParents(src)) {
collapseTable(id);
}
});
})(id);
});