code: function ($node, direction) {
        var that = this;
        // firstly, show the sibling td tags
        var $siblings = $();
        if (direction) {
          if (direction === 'left') {
            $siblings = $node.closest('table').parent().prevAll().removeClass('hidden');
          } else {
            $siblings = $node.closest('table').parent().nextAll().removeClass('hidden');
          }
        } else {
          $siblings = $node.closest('table').parent().siblings().removeClass('hidden');
        }
        // secondly, show the lines
        var $upperLevel = $node.closest('table').closest('tr').siblings();
        if (direction) {
          $upperLevel.eq(2).children('.hidden').slice(0, $siblings.length * 2).removeClass('hidden');
        } else {
          $upperLevel.eq(2).children('.hidden').removeClass('hidden');
        }
        // thirdly, do some cleaning stuff
        if (!this.getNodeState($node, 'parent').visible) {
          $upperLevel.removeClass('hidden');
          var parent = $upperLevel.find('.node')[0];
          this.repaint(parent);
          $(parent).addClass('sliding').removeClass('slide-down').one('transitionend', this.showRelatedParentEnd);
        }
        // lastly, show the sibling nodes with animation
        var $visibleNodes = $siblings.find('.node').filter(this.isVisibleNode.bind(this));
        this.repaint($visibleNodes.get(0));
        $visibleNodes.addClass('sliding').removeClass('slide-left slide-right');
        $visibleNodes.eq(0).one('transitionend', { 'node': $node, 'visibleNodes': $visibleNodes }, this.showSiblingsEnd.bind(this));
      }
docs: show the sibling nodes of the specified node