学习基于jQuery的FlexiGrid工具 (八)

2014-11-24 01:40:17 · 作者: · 浏览: 9
lement('div'); //create grip

g.rDiv = document.createElement('div'); //create horizontal resizer

g.cDrag = document.createElement('div'); //create column drag

g.block = document.createElement('div'); //creat blocker

g.nDiv = document.createElement('div'); //create column show/hide popup

g.nBtn = document.createElement('div'); //create column show/hide button

g.iDiv = document.createElement('div'); //create editable layer

g.tDiv = document.createElement('div'); //create toolbar

g.sDiv = document.createElement('div');

g.pDiv = document.createElement('div'); //create pager container

if (!p.usepager) {

g.pDiv.style.display = 'none';

}

g.hTable = document.createElement('table');

g.gDiv.className = 'flexigrid';

if (p.width != 'auto') {

g.gDiv.style.width = p.width + 'px';

}

//add conditional classes

if ($.browser.msie) {

$(g.gDiv).addClass('ie');

}

if (p.novstripe) {

$(g.gDiv).addClass('novstripe');

}

$(t).before(g.gDiv);

$(g.gDiv).append(t);

//set toolbar

if (p.buttons) {

g.tDiv.className = 'tDiv';

var tDiv2 = document.createElement('div');

tDiv2.className = 'tDiv2';

for (var i = 0; i < p.buttons.length; i++) {

var btn = p.buttons[i];

if (!btn.separator) {

var btnDiv = document.createElement('div');

btnDiv.className = 'fbutton';

btnDiv.innerHTML = "

" + btn.name + "
";

if (btn.bclass) $('span', btnDiv).addClass(btn.bclass).css({

paddingLeft: 20

});

btnDiv.onpress = btn.onpress;

btnDiv.name = btn.name;

if (btn.onpress) {

$(btnDiv).click(function () {

this.onpress(this.name, g.gDiv);

});

}

$(tDiv2).append(btnDiv);

if ($.browser.msie && $.browser.version < 7.0) {

$(btnDiv).hover(function () {

$(this).addClass('fbOver');

}, function () {

$(this).removeClass('fbOver');

});

}

} else {

$(tDiv2).append("

");

}

}

$(g.tDiv).append(tDiv2);

$(g.tDiv).append("

");

$(g.gDiv).prepend(g.tDiv);

}

g.hDiv.className = 'hDiv';

$(t).before(g.hDiv);

g.hTable.cellPadding = 0;

g.hTable.cellSpacing = 0;

$(g.hDiv).append('

');

$('div', g.hDiv).append(g.hTable);

var thead = $("thead:first", t).get(0);

if (thead) $(g.hTable).append(thead);

thead = null;

if (!p.colmodel) var ci = 0;

$('thead tr:first th', g.hDiv).each(function () {

var thdiv = document.createElement('div');

if ($(this).attr('abbr')) {

$(this).click(function (e) {

if (!$(this).hasClass('thOver')) return false;

var obj = (e.target || e.srcElement);

if (obj.href || obj.type) return true;

g.changeSort(this);

});

if ($(this).attr('abbr') == p.sortname) {

this.className = 'sorted';

thdiv.className = 's' + p.sortorder;

}

}

if (this.hidden) {

$(this).hide();

}

if (!p.colmodel) {

$(this).attr('axis', 'col' + ci++);

}

$(thdiv).css({

textAlign: this.align,

width: this.width + 'px'

});

thdiv.innerHTML = this.innerHTML;

$(this).empty().append(thdiv).removeAttr('width').mousedown(function (e) {

g.dragStart('colMove', e, this);

}).hover(function () {

if (!g.colresize && !$(this).hasClass('thMove') && !g.colCopy) {

$(this).addClass('thOver');

}

if ($(this).attr('abbr') != p.sortname && !g.colCopy && !g.colresize && $(th