我创建了下面的扩展来实现 div 内表的固定标题
$.fn.stickyHeader = function (options) {
options = $.extend({
setHeaderPercentage: false
}, options);
// this should be a div with overflow. we could traverse closest until we find one, but it's best if
// this
// is just used correctly.
var $clone = this.find('table').clone();
var id = $clone.attr('id') + '-stickyHeader';
if (options.setHeaderPercentage) {
var twidth = this.find('table').innerWidth();
this.find('thead tr').each(function (i, o) {
var $tr = $clone.find('thead tr').eq(i).find('th');
var twidth = 0;
$(o).find('th').each(function (i2, o2) {
twidth += $(o2).width();
});
$(o).find('th').each(function (i2, o2) {
var p = ($(o2).width() / twidth * 100);
$tr.eq(i2).css('width', p + '%');
});
});
}
$clone.find('tbody').remove();
$clone = $('<div>').append($clone);
$clone.css({
'position': 'absolute',
'top': '0',
'left': '0',
'right': '0',
'margin-right': Cobalt.UI.Helpers.getScrollBarWidth() + 'px', // this will always have the margin even if the
'display': 'block'
// scrollbar isn't present
});
$clone.attr('id', id);
var $container = $('<div>');
$container.css({
'margin': '0',
'padding': '0',
'border': '0',
'font-size': '100%',
'font': 'inherit',
'vertical-align': 'baseline',
'position': 'relative'
});
$container.insertBefore(this).append($clone).append(this);
return this;
};
我将其称为上述扩展名,如下所示:
//配置文件列表的粘滞标题
$('#panel').stickyHeader();
我的问题是我需要一种机制在某个时间点(某些替代条件)删除此扩展,我该如何实现?
编辑:删除 $.fn.stickyHeader; 没有解决我的情况...
我们可以做一些事情,比如扩展函数内部所做的更改将使用简单的逻辑恢复???
提前致谢!!!
-- 高克