2010-03-10 72 views
3

我无法在IE7中加载JQuery,在所有其他浏览器,firefox,safari,opera,ie8中都可以正常工作,IE8只是不在IE7中。Javascript未加载IE7

如果有人有任何想法为什么,请让我知道。

非常感谢,

Q

这与之前

<script src="js/jquery.js" type="text/javascript"></script> 
<script src="js/plugins.js" type="text/javascript"></script> 

<script type="text/javascript"> 
$(function(){ 
$('#coda-slider-1').codaSlider(); 
    $('#coda-services-1').codaSlider(); 
     $('#coda-work-1').codaSlider(); 

$("a[rel=rab]").fancybox({ 
       'transitionIn' : 'fade', 
       'transitionOut' : 'fade', 
         'titlePosition'  : 'over', 
      }); 
$("a[rel=annsummers]").fancybox({ 
       'transitionIn' : 'fade', 
       'transitionOut' : 'fade', 
         'titlePosition'  : 'over', 
      }); 
$("a[rel=sportingbet]").fancybox({ 
     'transitionIn'  : 'fade', 
     'transitionOut'  : 'fade', 
       'titlePosition'  : 'over', 
    }); 
$("a[rel=ryman]").fancybox({ 
     'transitionIn'  : 'fade', 
     'transitionOut'  : 'fade', 
     'titlePosition'  : 'over', 
    }); 
$('a').click(function() { 
    var elementClicked = $(this).attr("href"); 
    var destination = $(elementClicked).offset().top; 
    $("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination-20}, 1000); 
    return false; 
    }); 
}); 

function formatText(index, panel) { 
      return index + ""; 
     }  
     $(function() { 
      $('.slider').slider({ 
       easing: "easeInOutQuart", 
       autoPlay: true, 
       delay: 3300, 
       startStopped: false, 
       animationTime: 900, 
       hashTags: false, 
       buildNavigation: true, 
       pauseOnHover: true, 
       navigationFormatter: formatText 
      }); 
     $("#slide-jump").click(function(){ 
       $('.slider').slider(6); 
      });  
     }); 
function formatText(index, panel) { 
      return index + ""; 
     }  
     $(function() { 
      $('.history-slider').slider({ 
       easing: "easeInOutQuart", 
       autoPlay: false,  
       delay: 3000,  
       startStopped: false,   
       animationTime: 900,   
       hashTags: false,  
       buildNavigation: false, 
       pauseOnHover: true,  
       navigationFormatter: formatText  
      }); 
     $("#slide-jump").click(function(){ 
       $('.history-slider').slider(6); 
      });  
     }); 

</script> 

回答

13

的问题是尾随逗号; IE不喜欢那些。这里有一个,例如:

$("a[rel=rab]").fancybox({ 
    'transitionIn' : 'fade', 
    'transitionOut' : 'fade', 
    'titlePosition' : 'over', // <= the trailing comma 
}); 

它不喜欢它们在数组初始化器中。

+0

+1。是的,这意味着在处理数组或对象文字时,您必须对复制/粘贴操作保持警惕。确保最后一个元素不包含逗号,或者你自己在IE中有语法错误。 – 2010-03-10 15:38:27

+0

这是问题所在。发生在我身上很多,它让我发疯,因为它可能很难找到。 – Josh 2010-03-10 15:38:58

0

您可以通过刚刚宣布参数块曾经为自己节省一堆的打字:

var fancyboxSetup = { 
    'transitionIn' : 'fade', 
    'transitionOut' : 'fade', 
    'titlePosition'  : 'over' 
}; 

然后只需按名称使用它:

$("a[rel=rab]").fancybox(fancyboxSetup); 

您也可能会发现,你可以设置所有你的主播只有一个电话:

$('a[rel]').fancybox(fancyboxSetup); 
0

我认为这是因为在属性中的额外逗号清单。

$("a[rel=sportingbet]").fancybox({ 
     'transitionIn'  : 'fade', 
     'transitionOut'  : 'fade', 
       'titlePosition'  : 'over', <--------- 
    }); 

此外,您可能可以将所有项目组合到一个选择器中以节省文件大小。我不知道你是否需要过渡的灵活性。

$("a[rel=annsummers], a[rel=sportingbet], a[rel=sportingbet], a[rel=ryman]").fancybox({ 
     'transitionIn'  : 'fade', 
     'transitionOut'  : 'fade', 
       'titlePosition'  : 'over' 
    });