2012-05-02 66 views
0

我一个基本的幻灯片工作“预期标识符,字符串或数字”,它工作正常在Firefox但IE是给我下面的错误:JavaScript错误:在IE

Expected identifier, string or number script.js, line 26 character 4 
    Expected identifier, string or number script.js, line 26 character 4 
    Expected identifier, string or number script.js, line 24 character 4 
    Expected identifier, string or number script.js, line 25 character 4 
    Expected identifier, string or number script.js, line 25 character 4 
    Expected identifier, string or number script.js, line 25 character 4 
    Expected identifier, string or number script.js, line 35 character 3 
    Expected identifier, string or number script.js, line 35 character 3 
    Expected identifier, string or number script.js, line 35 character 3 
    Expected identifier, string or number script.js, line 35 character 3 
    Expected identifier, string or number script.js, line 35 character 3 
    Expected identifier, string or number script.js, line 35 character 3 
    Expected identifier, string or number script.js, line 35 character 3 

这里是我的代码(附有行号)。

1 $(document).ready(function(){ 
2             
3  var slideshow = $("#slideshow"); 
4  var slides = slideshow.children(".slide"); 
5  var dimensions = { 
6   position: slideshow.position(), 
7   width: slideshow.width(), 
8   height: slideshow.height(), 
9   midX: slideshow.width()/2, 
10   midY: slideshow.height()/2 
11  }; 
12  var index = 0; 
13  
14  slides.each(function(number){ 
15   $(this).data("offset", { 
16    left: dimensions.midX - ($(this).width()/2), 
17    top: dimensions.midY - ($(this).height()/2) 
18   }); 
19   $(this).css({ 
20    position: "absolute", 
21    top: $(this).data("offset").top 
22   }); 
23   if(number == 0) 
24   { 
25    $(this).css({left: $(this).data("offset").left + "px"}); 
26   } 
27   else 
28   { 
29    $(this).css({left: dimensions.width + "px"}); 
30   } 
31   
32   slideshow.css({ 
33    position: "relative", 
34    overflow: "hidden", 
35   }); 
36  }); 
37  
38  slideshow.bind('click', slideImages); 
39  
40  function slideImages(e){ 
41   e.preventDefault(); 
42   $(this).unbind('click', slideImages); 
43   var direction = (e.pageX - dimensions.position.left < slideshow.width()/2) ? "left" : "right"; 
44   var leftOffset = (direction == "left") ? dimensions.width : -dimensions.width; 
45   slides.eq(index).animate({left: leftOffset}, 500, function() { 
46    $(this).css({left: -leftOffset}); 
47   }); 
48   
49   if (direction == "left") 
50    index = (index == (0)) ? slides.length - 1 : index - 1; 
51   else 
52    index = (index == (slides.length - 1)) ? 0 : index + 1; 
53   
54   slides.eq(index).css({left: -leftOffset}).animate({left: slides.eq(index).data("offset").left}, 500, function() { 
55    slideshow.bind('click', slideImages); 
56   }); 
57  
58  } 
59  
60 }); 

有没有人知道这是什么原因造成的?

+2

您是从'script.js'发布的代码吗? –

+0

@SimonAndréForsberg是 –

回答

7

厄运的恶逗号已经找到了你。

IE不会原谅对象文字中的尾随逗号

slideshow.css({ 
    position: "relative", 
    overflow: "hidden", // <-- evil 
}); 

删除所有尾随逗号,如上所述,你很好。

+0

我只在他的代码中看到一个尾随逗号。 –

+0

谢谢修复脚本无法正常工作,但是我仍然遇到同样的错误。奇怪。 –

+1

@SimonAndréForsberg我只曾经犯过同样的错误 –