tr 的显示隐藏display属性导致firefox 的td colspan有关问题(ZT)
tr 的显示隐藏display属性导致firefox 的td colspan问题(ZT)不知道你有没有做过这样的一种效果,一个table
tr 的显示隐藏display属性导致firefox 的td colspan问题(ZT)
不知道你有没有做过这样的一种效果,一个table中的一个连接,javascript 控制 tr 的显示隐藏,来达到显示更多数据的效果。如果没做过,尝试一下吧,你会发现,table中隐藏的tr的含有colspan的td 在再次显示以后,firefox会把内容合并到 第一个td里。
有点绕,把下面的代码copy以后另存为.html 打开 就知道我说的是什么问题了。锻炼自己的动手能力,我就不贴图了,想知道原因跟解决办法就看下去吧。
通过 class 为view的链接,显示隐藏 id 为 dis 的tr ,当tr的属性为 display:block 或者 display:inline 的时候,firefox就会出现显示错误了。 这个究竟是什么原因引起的?我用jquery的 show();hide();来控制显示时,就没有这个问题。看了jquery1.3.2的第3785行show() 函数,里面除了设置它的display属性以外,还多了一个elem.remove();不知道是不是跟这个有关。
是table的块元素引起的吗?那怎么inline了以后也会?后来查到csdn有篇文章,好像是firefox的display:block有缓存,那是不是跟上面的elem.remove()也是一样的?display:”没有参数的时候,默认是显示元素,我把应该显示的 display:block 改为 display:” ;解决了firefox的colspan这个问题。但是为什么会这样,还是一知半解,你知道吗?
jquery的demo
1 楼 zhaoxiu_1945 2011-11-03 。。。 你现在知道什么原因了吗,我按照你的方法解决了问题,但是这是问什么啊 2 楼 SunsetGrace1 2012-03-13 我也遇到了,解决方法如下
var display=$('#'+attendlistid).attr('class');
if(display=="hidden"){
$('#'+attendlistid).show();
$('#'+attendlistid).removeClass(display).addClass("show");//已失效,起作用的只是show(),只是作为显示隐藏的条件判断用,为了FF下clospan合并为1个单元格的问题
$('#attendbtn_'+courseid).val('<%=user.get("ht.university.attendlistbtnhide")%>');
}else{
$('#'+attendlistid).hide();
$('#'+attendlistid).removeClass(display).addClass("hidden");
$('#attendbtn_'+courseid).val('<%=user.get("ht.university.attendlistbtn")%>');
} 3 楼 SunsetGrace1 2012-03-13 SunsetGrace1 写道我也遇到了,解决方法如下
var display=$('#'+attendlistid).attr('class');
if(display=="hidden"){
$('#'+attendlistid).show();
$('#'+attendlistid).removeClass(display).addClass("show");//已失效,起作用的只是show(),只是作为显示隐藏的条件判断用,为了FF下clospan合并为1个单元格的问题
}else{
$('#'+attendlistid).hide();
$('#'+attendlistid).removeClass(display).addClass("hidden");
}