悬停时jQuery中第156行的奇怪错误

时间:2011-01-11 15:25:46

标签: javascript jquery internet-explorer error-handling

问题:

  • 网站适用于Firefox,Chrome,Safari,但不适用于IE(7& 8)。
  • modernbrowsereffects.js中第1行第1个字符的错误 - 但为什么?
  • 将鼠标悬停在左侧菜单上时会出现更多错误

编辑:

我想我已经得到了罪人!但我似乎无法找到解决方法。当我从JS文件中删除它时,一切都像魅力一样:

//Left menu :hover-effect
$('ul.menu li a:not(.active)') 
    .css({backgroundPosition: '262px 12px'}) 
    .mouseover(function(){ 
       $(this).stop().animate({backgroundPosition: '248px 12px'})
       })
    .mouseout(function(){ 
       $(this).stop().animate({backgroundPosition: '262px 12px'}) 
});

//Left menu :hover-effect (Child)
$('ul.menu li ul li a:not(.active)')
    .css({backgroundPosition: '262px 7px'}) 
    .mouseover(function(){ 
       $(this).stop().animate({backgroundPosition: '248px 7px'})
       })
    .mouseout(function(){ 
       $(this).stop().animate({backgroundPosition: '262px 7px'}) 
});

详细说明:
我在this page I've done上有这个非常奇怪的问题。

我有一个名为ModersBrowserEffects.js的JS文件,我在网站上产生了很多影响。动画等。

这一切都适用于IE浏览器,甚至IE8都没有。

它说错误是在ModersBrowserEffects.js中的第1行和第1个字符,但我不明白为什么$应该是错误?

如果这还不够......如果您将鼠标悬停在左侧菜单(具有动画背景位置,在ModernBrowserEffects.js中指定),则会出现许多新错误。现在它的jQuery在第156行有一些错误......

4 个答案:

答案 0 :(得分:1)

IE不会/不应该让你通过这种方式直接关闭背景位置。显然你可以使用CSS Hooks来做,但我没试过。如果您关注this link,则会有更详细的答案以及指向该插件的链接,该插件将为您提供此功能。

有趣的是,如果你将你的jQuery版本更改为1.4.2它应该可以工作。见example

答案 1 :(得分:0)

尝试删除文件末尾的以下代码

(jQuery)

答案 2 :(得分:0)

您遇到路径问题,您在HTML中使用相对路径。

// this one is absolute
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js">   </script>

// these are relative
<script type="text/javascript" src="/scripts/jquery.example.js"></script>
<script type="text/javascript" src="/scripts/jquery.cycle.all.min.js"></script>
<script type="text/javascript" src="/scripts/topbillede.js"></script>
<script type="text/javascript" src="/scripts/slimbox2.js"></script>    
<script type="text/javascript" src="/scripts/modernBrowserEffects.js"></script>

因此,当您在首页时,浏览器将加载存在的http://bevola.dk/scripts/modernBrowserEffects.js,但是当您在子页面上时,浏览器会尝试加载http://bevola.dk/om-bevola/koncepter/globalpartner/scripts/modernBrowserEffects.js,这会引发一个404 Error

让你的脚本路径绝对修复它:

<script type="text/javascript" src="http://bevola.dk/scripts/modernBrowserEffects.js"></script>

为什么它只在IE中断?我猜只有IE使用了无法加载的部分脚本。

答案 3 :(得分:0)

问题与脚本有关,如编辑中所写。 我已经重写了脚本,所以它现在没有出错。但现在它在IE中没有动画效果。它在每个其他浏览器中都有。脚本:

//Leftmenu :hover-effect
    $('ul.menu li a:not(.active)').css({backgroundPosition: '262px 12px'});
    $('ul.menu li a:not(.active)').hover(function() {
          $(this).stop().animate({backgroundPosition: '248px 12px'}, 150); 
      }, function() {
          $(this).stop().animate({backgroundPosition: '262px 12px'}, 150); 
    }); 

//Leftmenu :hover-effect (Child)
    $('ul.menu li ul li a:not(.active)').css({backgroundPosition: '262px 7px'});
    $('ul.menu li ul li a:not(.active)').hover(function() {
          $(this).stop().animate({backgroundPosition: '248px 7px'}, 150); 
      }, function() {
          $(this).stop().animate({backgroundPosition: '262px 7px'}, 150); 
    });


错误已解决,但是你们中的任何人都可以告诉我为什么它不会在IE中动画吗?