「MediaWiki:Gadget-tablesort.js」の版間の差分

rowspanで不具合があったので分割するように処置(とりあえず)
(一部のページで無限ループに陥る問題を修正)
(rowspanで不具合があったので分割するように処置(とりあえず))
23行目: 23行目:
         'わ': 'ワ', 'を': 'ヲ', 'ん': 'ン'
         'わ': 'ワ', 'を': 'ヲ', 'ん': 'ン'
       });
       });
      /* ソートキー */
      function getElementSortKey(node) {
        var $node = $(node),
            data = $node.data('sortValue');
        if (data !== null && data !== undefined) {
          return String(data);
        } else if (node.tagName.toLowerCase() === 'img') {
          return $node.attr('alt') || '';
        } else {
          return $.map(node.childNodes, function(el) {
            return el.nodeType === 1 ? getElementSortKey(el) : $.text(el);
          }).join('');
        }
      }


       /* sortbottom相当の機能を追加する */
       /* sortbottom相当の機能を追加する */
67行目: 82行目:
         $tfoot.appendTo(this);
         $tfoot.appendTo(this);


        /* .sortmiddle, .sortbottom */
         var $rows = $(rows);
         var $rows = $(rows);
         this.$sortbottoms = $rows.filter('.sortmiddle, .sortbottom').each(function(i) {
         this.$sortbottoms = $rows.filter('.sortmiddle, .sortbottom').each(function(i) {
           this.insertPosition = $rows.index(this) - i;
           this.insertPosition = $rows.index(this) - i;
         }).addClass('remove-me').remove();
         }).addClass('remove-me').remove();
      });


      /* ソートキー */
        /* rowspanを持つセルを分割する(暫定) */
      function getElementSortKey(node) {
        $rows.each(function(i) {
        var $node = $(node),
          var cells = this.cells;
            data = $node.data('sortValue');
          for (var j = 0, len = cells.length; j < len; j++) {
        if (data !== null && data !== undefined) {
            var rowspan = cells[j].rowSpan;
          return String(data);
            cells[j].rowSpan = 1;
        } else if (node.tagName.toLowerCase() === 'img') {
            for (var k = 1; k < rowspan; k++) {
          return $node.attr('alt') || '';
              $(cells[j]).clone().insertBefore($rows.get(i + k).cells[j]);
        } else {
            }
          return $.map(node.childNodes, function(el) {
           }
            return el.nodeType === 1 ? getElementSortKey(el) : $.text(el);
         });
           }).join('');
       })
         }
       .tablesorter({
       }
 
       $sortableTables.tablesorter({
        debug: true,
         sortLocaleCompare: true,
         sortLocaleCompare: true,
         sortRestart: true,
         sortRestart: true,
user-upload
3,547

回編集