IE8中的JavaScript错误-预期为''&';位置()。左';是空的
有人能帮帮我吗?在完成这项工作之前,我无法完成网站建设,这对我的家人来说是一个惊喜:( 我在IE8中遇到了一个错误。这个功能在所有浏览器上都能正常工作。为什么IE会标记一个错误,我只是不明白,我所能看到的是,在它被修复之前没有出路:(请帮助我,一定是有一个小故障导致了明显不可见的错误 这些都是错误,如果有人能帮助我,我将不胜感激。我对脚本感到困惑 **错误** 消息:“position().left”为空或不是对象行:44字符:5 代码:0 这是第44行,位于脚本中: $magicLineTwo 这是该脚本的全部代码。该脚本中没有其他内容,有两组代码标记为“示例1和示例2”,第二组代码产生了问题:IE8中的JavaScript错误-预期为''&';位置()。左';是空的,javascript,jquery,internet-explorer,runtime-error,Javascript,Jquery,Internet Explorer,Runtime Error,有人能帮帮我吗?在完成这项工作之前,我无法完成网站建设,这对我的家人来说是一个惊喜:( 我在IE8中遇到了一个错误。这个功能在所有浏览器上都能正常工作。为什么IE会标记一个错误,我只是不明白,我所能看到的是,在它被修复之前没有出路:(请帮助我,一定是有一个小故障导致了明显不可见的错误 这些都是错误,如果有人能帮助我,我将不胜感激。我对脚本感到困惑 **错误** 消息:“position().left”为空或不是对象行:44字符:5 代码:0 这是第44行,位于脚本中: $magicLineTwo
$(function(){
var $el, leftPos, newWidth,
$mainNav = $("#example-one"),
$mainNav2 = $("#example-two");
/*
EXAMPLE ONE
*/
$mainNav.append("<li id='magic-line'></li>");
var $magicLine = $("#magic-line");
$magicLine
.width($(".current_page_item").width())
.css("left", $(".current_page_item a").position().left)
.data("origLeft", $magicLine.position().left)
.data("origWidth", $magicLine.width());
$("#example-one li").find("a").hover(function() {
$el = $(this);
leftPos = $el.position().left;
newWidth = $el.parent().width();
$magicLine.stop().animate({
left: leftPos,
width: newWidth
});
}, function() {
$magicLine.stop().animate({
left: $magicLine.data("origLeft"),
width: $magicLine.data("origWidth")
});
});
/*
EXAMPLE TWO
*/
$mainNav2.append("<li id='magic-line-two'></li>");
var $magicLineTwo = $("#magic-line-two");
$magicLineTwo
.width($(".current_page_item_two").width())
.height($mainNav2.height())
.css("left", $(".current_page_item_two a").position().left)
.data("origLeft", $(".current_page_item_two a").position().left)
.data("origWidth", $magicLineTwo.width())
.data("origColor", $(".current_page_item_two a").attr("rel"));
$("#example-two li").find("a").hover(function() {
$el = $(this);
leftPos = $el.position().left;
newWidth = $el.parent().width();
$magicLineTwo.stop().animate({
left: leftPos,
width: newWidth,
backgroundColor: $el.attr("rel"),
});
}, function() {
$magicLineTwo.stop().animate({
left: $magicLineTwo.data("origLeft"),
width: $magicLineTwo.data("origWidth"),
backgroundColor: $magicLineTwo.data("origColor")
});
});
});
$(函数(){
var$el、leftPos、newWidth、,
$mainNav=$(“#示例一”),
$mainNav2=$(“#示例二”);
/*
例一
*/
$mainNav.append(“”;
变量$magicLine=$(“#幻线”);
$magicLine
.width($(“.current\u page\u item”).width()
.css(“左”(“.current_page_item a”).position().left)
.data(“origLeft”,$magicLine.position().左)
.data(“origWidth”,$magicLine.width());
$(“#示例一li”).find(“a”).hover(函数(){
$el=$(此项);
leftPos=$el.position().left;
newWidth=$el.parent().width();
$magicLine.stop().animate({
左:左位置,
宽度:新宽度
});
},函数(){
$magicLine.stop().animate({
左:$magicLine.data(“origLeft”),
宽度:$magicLine.data(“origWidth”)
});
});
/*
例二
*/
$mainNav2.append(“”;
var$magicLineTwo=$(“#幻线二”);
$magicLineTwo
.width($(“.current\u page\u item\u two”).width()
.height($mainNav2.height())
.css(“左”、$(“.current_page_item_two a”).position().left)
.data(“origLeft”,$(“.current\u page\u item\u two a”).position().左)
.data(“origWidth”,$magicLineTwo.width())
.data(“origColor”,$(“.current\u page\u item\u two a”).attr(“rel”);
$(“#示例二li”).find(“a”).hover(函数(){
$el=$(此项);
leftPos=$el.position().left;
newWidth=$el.parent().width();
$magicLineTwo.stop().animate({
左:左位置,
宽度:newWidth,
背景颜色:$el.attr(“rel”),
});
},函数(){
$magicLineTwo.stop().animate({
左:$magicLineTwo.data(“origLeft”),
宽度:$magicLineTwo.data(“origWidth”),
背景颜色:$magicLineTwo.data(“原色”)
});
});
});
这有很多错误,因此我不会详细介绍(例如,一个页面上有多个jQuery,引用的元素不在DOM上,等等)
这在我的机器上的IE8中起作用,你可以自己修复有问题的样式。Chrome或IE中没有显示JS错误:
以下是固定JS:
$(function () {
var $el, leftPos, newWidth,
$mainNav = $("#example-one")
/*
EXAMPLE ONE
*/
$mainNav.append("<li id='magic-line'></li>");
var $magicLine = $("#magic-line");
$magicLine.width($(".current_page_item").width())
.css("left", $(".current_page_item a").position().left)
.data("origLeft", $magicLine.position().left)
.data("origWidth", $magicLine.width());
$("#example-one li").find("a").hover(function () {
$el = $(this);
leftPos = $el.position().left;
newWidth = $el.parent().width();
$magicLine.stop().animate({
left: leftPos,
width: newWidth
});
}, function () {
$magicLine.stop().animate({
left: $magicLine.data("origLeft"),
width: $magicLine.data("origWidth")
});
});
});
$(函数(){
var$el、leftPos、newWidth、,
$mainNav=$(“#示例一”)
/*
例一
*/
$mainNav.append(“”;
变量$magicLine=$(“#幻线”);
$magicLine.width($(“.current\u page\u item”).width()
.css(“左”(“.current_page_item a”).position().left)
.data(“origLeft”,$magicLine.position().左)
.data(“origWidth”,$magicLine.width());
$(“#示例一li”).find(“a”).hover(函数(){
$el=$(此项);
leftPos=$el.position().left;
newWidth=$el.parent().width();
$magicLine.stop().animate({
左:左位置,
宽度:新宽度
});
},函数(){
$magicLine.stop().animate({
左:$magicLine.data(“origLeft”),
宽度:$magicLine.data(“origWidth”)
});
});
});
小提琴:
希望这能有所帮助。你为什么让你的家庭成员忍受IE8的折磨?你的小提琴没有id为示例二的元素。我得到了一个完全不同的错误。你的标记是否包含类
当前页面_item_two
的元素?我将你的标记加倍,添加了#示例二
和带有c的li当前页面项目二在IE8\Chrome中运行良好。您遇到了什么错误?这是与fiddle中相同的脚本,这里没有其他内容。应该是菜单,我希望保持相同的效果。已经过去了几周:(在你的提琴中,我得到了未捕获的TypeError:无法调用null的方法'height'
,因为$mainNav2
在DOM上不存在,所以你删除了第二个示例,那么脚本的这一部分是不是没用了?你能不能说一下,这其中最糟糕的是什么导致了这个错误?现在没有这个,它的功能是完美的。)第二个例子,你做了一个了不起的工作,相信我,我非常感谢你的时间和帮助,这是一个巨大的解脱!!非常感谢!!你是唯一一个整理代码的人!!:)我希望你不介意我问一些别的问题,因为这里只有一个天才,而这个编码是一个完整的迷宫……我是否需要替换这两个代码js/jquery-1.3.1.min.js’对于一个较新的版本,我是否需要更新两个或一个是所有函数的通用代码?我应该下载哪个版本,这会影响我的jquery函数有吗?是的。它指向一个你没有的菜单。如果这对你有帮助,请将它标记为正确答案:)很高兴能提供帮助。你的页面上应该只有一个jQuery文件,除非你有很好的理由拥有多个(例如,一个插件需要一个旧的ve)