Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery到zebra stripe表不';我不在IE8工作_Jquery - Fatal编程技术网

JQuery到zebra stripe表不';我不在IE8工作

JQuery到zebra stripe表不';我不在IE8工作,jquery,Jquery,作为我对jQuery的第一次尝试,我在PHP生成的网页中做了很多事情。它 以悬停效果突出显示“我的导航栏”中的项目 在某些div和 从外部文件加载名为“posit”的DIV 它还意味着使用ID='playlist'标记斑马条纹表,即使它们位于加载到'posit'DIV的HTML中 在FF 3.6.10中一切都很好,但斑马条纹在IE8中不起作用。我采用了一种通过搜索SO找到的技术,并在一个独立的PHP文件中对其进行了测试,jQuery只对斑马条纹进行了测试 它在那里工作,但我认为我在下面的代码中要

作为我对jQuery的第一次尝试,我在PHP生成的网页中做了很多事情。它

  • 以悬停效果突出显示“我的导航栏”中的项目
  • 在某些div和
  • 从外部文件加载名为“posit”的DIV
  • 它还意味着使用ID='playlist'标记斑马条纹表,即使它们位于加载到'posit'DIV的HTML中
  • 在FF 3.6.10中一切都很好,但斑马条纹在IE8中不起作用。我采用了一种通过搜索SO找到的技术,并在一个独立的PHP文件中对其进行了测试,jQuery只对斑马条纹进行了测试

    它在那里工作,但我认为我在下面的代码中要求jQuery做的几件事之间存在某种冲突。有人能告诉我可能做错了什么吗

    下面是PHP文件中的一些相关代码

    <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");
    }