Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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
Javascript 悬停时jQuery中第156行出现奇怪错误_Javascript_Jquery_Internet Explorer_Error Handling - Fatal编程技术网

Javascript 悬停时jQuery中第156行出现奇怪错误

Javascript 悬停时jQuery中第156行出现奇怪错误,javascript,jquery,internet-explorer,error-handling,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:

问题:

  • 该网站可以在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'}) 
});
详细说明:
我有一个很奇怪的问题

我有一个JS文件,名为ModersBrowserEffects.JS,我在网站上做了很多效果。动画等等

除了IE,甚至IE8,它在所有浏览器中都非常有效

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


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

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

(jQuery)

如果存在路径问题,则在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>

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

问题在于编辑中写的脚本有问题。 我已经重写了脚本,所以它现在不会出现任何错误。但现在它不再在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中设置动画???
IE不允许/不应该让您直接以这种方式设置背景位置的动画。显然你可以用CSS钩子来做,但我还没有试过。如果你遵循这个方法,你会得到一个更详细的答案以及一个插件链接,这个插件将为你提供这个功能


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

您确定JS文件上没有BOM表吗?或者编码是正确的(或者IE支持的)?它已经工作了。奇怪的是,完全相同的JS文件正在脱机工作。什么是BOM?我尝试下载jQuery,而不是使用Google上的jQuery。运气不好。在Safari控制台中,我看到一个错误“modernBrowserEffects.js:140 TypeError:Result of expression near'…})(jQuery).[[object]]不是一个函数。”可能是在您的生产环境中,脚本期望的某个对象不存在。BOM(字节顺序标记)是文件开头的几个字节,用于提供一些编码信息。由于错误出现在第一个字符上,我认为可能与此有关。但很明显,IE在报告错误方面很差劲。我试过了,但没用。我还尝试删除所有其他JS文件,但运气不佳。当我尝试此操作时,只有jQuery文件会产生错误。它们都在第156行。相对路径从来没有问题。注意,有一个“/”表示404错误永远不会出现。问题出在我第一篇文章顶部的“编辑”标题下面的代码中。当我删除此代码时,一切都像一个符咒。
//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); 
    });