コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

利用者:Frozen-mikan/EnhancedCollapsibleTables.js

お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。

多くの WindowsLinux のブラウザ

  • Ctrl を押しながら F5 を押す。

Mac における Safari

  • Shift を押しながら、更新ボタン をクリックする。

Mac における ChromeFirefox

  • 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);
});