JQuery到zebra stripe表不';我不在IE8工作
作为我对jQuery的第一次尝试,我在PHP生成的网页中做了很多事情。它JQuery到zebra stripe表不';我不在IE8工作,jquery,Jquery,作为我对jQuery的第一次尝试,我在PHP生成的网页中做了很多事情。它 以悬停效果突出显示“我的导航栏”中的项目 在某些div和 从外部文件加载名为“posit”的DIV 它还意味着使用ID='playlist'标记斑马条纹表,即使它们位于加载到'posit'DIV的HTML中 在FF 3.6.10中一切都很好,但斑马条纹在IE8中不起作用。我采用了一种通过搜索SO找到的技术,并在一个独立的PHP文件中对其进行了测试,jQuery只对斑马条纹进行了测试 它在那里工作,但我认为我在下面的代码中要
<link rel="stylesheet" type="text/css" href="/styles/music.css">
<script type='text/javascript' src='http://pc-06/jquery-1.5.2.min.js'></script>
<script type='text/javascript' src='http://pc-06/jquery.corner.js'></script>
<script type='text/javascript'>
var jsvar = '<?php echo"$af" ?>';
$(document).ready(function(){
$('#top').css('background-color','#934').corner('top keep');
$('#footer').css('background-color','#934').corner('bottom keep');
$('#nav a').hover(function(){
$(this).addClass('highlighted');
}, function(){
$(this).removeClass('highlighted');
});
$('#postit').click(function(){
$('#postit').animate({
height: 'toggle'
},1000, function() {
});
});
$('#postit').load(jsvar).corner('round 10px keep');
$("#playlist tr:nth-child(odd)").addClass("odd");
});
</script>
这是因为IE8在jQuery方面不支持第n个子伪选择器(存在一些问题)。您可以使用jQuery内置的:奇数和:偶数选择器来全面实现相同的功能
$("#playlist tr:odd").addClass("odd");
$("#playlist tr:even").addClass("even");
我不确定jQuery是否支持第n个子项,但它确实有:odd,所以下面的方法可能会更好
$("#playlist tr:odd").addClass("odd");
此外,您可以通过将两个选择器合并为一个来简化样式表,这样您只需在一个位置而不是两个位置更改值
#playlist tr:nth-child(odd),
#playlist tr.odd td {
background-color : #ddf;
}
我可以建议的最后一个改进是只为旧版本的IE运行jquery。您可以使用$.support.opacity(旧版本的IE确实有不透明度,但以非标准方式执行,因此将返回false)
感谢您的建议,但是为IE缺少对第n个孩子的支持提供了解决办法的SO问题说选择器必须分开。我现在找不到它,但我知道在我的简单独立页面上解决IE8问题的方法是有效的。我不需要考虑IE8之前的IE版本,我的用户都在公司的Intranet上,其中IE8是MimuMuxEy到GordonM的回答的评论。我尝试过你的建议,谢谢,但在IE8中仍然不起作用。
#playlist tr:nth-child(odd),
#playlist tr.odd td {
background-color : #ddf;
}
if (!$.support.opacity)
{
$("#playlist tr:odd").addClass("odd");
}