Javascript错误:IE中的“预期标识符,字符串或数字”

时间:2012-05-02 11:44:30

标签: javascript jquery internet-explorer

我正在制作一个基本的幻灯片,它在Firefox中工作正常但是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    });

有谁知道造成这种情况的原因是什么?

1 个答案:

答案 0 :(得分:7)

厄运的邪恶的逗号得到了你。

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

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

删除上面所有的尾随逗号,你没事。