我现在有一个代码来修复我的表的标题,它工作正常。但是这个功能有一个警告:
Error: TypeError: $(...).offset(...) is undefined
我的代码(我使用bootstrap):
function goheadfixed(classtable) {
$(classtable).wrap('<div class="fix-inner">');
$('.fix-inner').wrap('<div class="fix-outer" style="position: relative;"></div>'); //this is relative cause the header will be absolute
$('.fix-outer').append('<div class="fix-head"></div>');
$('.fix-head').prepend($('.fix-inner').html()); // agrego la tabla
$('.fix-head table').find('caption').remove();
//$('.fix-head table').removeAttr('style');
$('.fix-head table').css('width','100%');
$('.fix-head').css('width', $('.fix-inner table').outerWidth(true)+'px');
$('.fix-head').css('height', $('.fix-inner table thead').outerHeight(true)+'px');
var ithead = parseInt($('.fix-inner table thead').offset().top);
var divfix = parseInt($('.fix-inner').offset().top);
var itop = ithead-divfix;
$('.fix-head').css({'position':'absolute', 'overflow':'hidden', 'top': itop+'px', 'left':0, 'z-index':100 });
$(window).scroll(function () {
var vscroll = $(window).scrollTop();
if(vscroll >= ithead)
$('.fix-head').css('top',(vscroll-divfix)+'px');
else
$('.fix-head').css('top', itop+'px');
});
/* If the windows resize */
$(window).resize(goresize);
}
function goresize() {
$('.fix-head').css('width', $('.fix-inner table').outerWidth(true)+'px');
$('.fix-head').css('height', $('.fix-inner table thead').outerHeight(true)+'px');
}
我打电话给我的功能:
goheadfixed('table.fixed');
然后,当我把其他代码javascript放在下面时,我的代码不起作用但是当放在上面时,它工作正常! :
如何删除此warninng?
编辑(添加详细信息作为答案发布): 哦。对不起,我忘了说只有当我不使用这个功能时才会出现“警告”。
如果我打电话给funcion goheadfixed('table.fixed');好吧,但如果我不打电话给这个功能,就会显示警告。
答案 0 :(得分:0)
在第14行,$('.fix-inner table thead')
指的是不存在或隐藏的元素。听起来好像你发现至少有一个display:none
集合的元素,并且因此而返回一个未定义的数字。
要解决此问题,您可以为每个元素添加可见的选择器$("thead:visible")
。