[解决]
问题是IE8,只需将其添加到头部:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
搜索功能中的某些语句与IE8不兼容,尚未找到哪些语句。也许是.hide()
我有一个搜索框,一个数据表和一个页脚。
在后端(jQuery):我有一个搜索功能,根据用户输入过滤表。当用户输入搜索词时,结果被动态过滤(表的高度动态变化);
我还有一个功能,根据表格的长度将页脚定位到页面底部。 如果表长于浏览器高度,则页脚将附加到表的末尾。 如果表格较短,则页脚将固定在页面底部。
问题:我输入搜索字词时,$('#datatable').outerHeight();
并不总是自我更新。仅在IE8中,在Firefox中运行良好。
这是功能:
function positionFooter(obj){
var a = $('#datatable').outerHeight();
var b = $(window).height();
if (a >= b) {
obj.css("position","relative");
} else {
obj.css("position","fixed");
obj.css("bottom","0px");
}
}
function searchTable(inputVal){
// go through every row
$('#datatable').find('tr').each(function(index, row){
var allCells = $(row).find('td');
if(allCells.length > 0){
var found = false;
// go through every cell
allCells.each(function(index, td){
var regExp = new RegExp(inputVal, 'i');
// check if current cell = keyword
if(regExp.test($(td).text())){
found = true;
return false;
}
});
// show all found row, hide rest
if(found == true){
$(row).show();
}else{
$(row).hide();
}
}
});
}
以下是我如何称呼它们:
$(window).resize(function(){
positionFooter($('#footer'));
});
$(document).ready(function(){
positionFooter($('#footer'));
$('#search').keyup(function(){
searchTable($(this).val());
// as user type keyword, table height changes
// should re-position footer everytime table changes
positionFooter($('#footer'));
});
});
positionFooter()
函数,它工作正常。似乎当我将两者合并时,它不再起作用,是因为我如何称呼它们? 但奇怪的是问题只发生在IE8中。我很困惑......