IE 无法识别 jQuery 选择器
Posted
技术标签:
【中文标题】IE 无法识别 jQuery 选择器【英文标题】:IE not recognizing jQuery selector 【发布时间】:2011-03-17 04:35:12 【问题描述】:这是我使用 jQuery 为 div 设置动画的 sn-p 代码:
$('.row0').hover(function()
var markeranim = $('.marker0');
var shadowanim = $('.markerShadow0')
var markertop = markeranim.position().top;
var shadowtop = shadowanim.position().top;
var shadowleft = shadowanim.position().left;
$('tr.row0').addClass('rowHoveredEven');
markeranim.animate( top: [markertop - 20 + 'px'] , 250, 'linear',
function()
markeranim.animate( top: [markertop + 'px'] , 250, 'linear',
function()
markeranim.animate( top: [markertop - 10 + 'px'] , 200,
'linear', function()
markeranim.animate( top: [markertop + 'px'] , 200);
);
);
);//close animation
这适用于所有浏览器,但 IE(当然)除外。 IE 给出错误提示:“'position().top' 为 null 或不是对象”以及:“'position().left' 为 null 或不是对象”。任何人都知道为什么或以其他方式我可以抓住这些 IE 会很好玩的属性吗?
【问题讨论】:
您能否发布 html / css 以便我们验证 row0 ? 自己检查一下可能是最简单的。这是我正在开发的枪支经销商定位器。访问 www.axtsweapons.com,点击左上角的登录并输入用户:“test” 密码:“1234”,然后转到 /ffllocator,输入邮政编码并尝试一下。使用除 IE 以外的任何浏览器,当您将鼠标悬停在关联的 tr 上时,地图上的标记都会动画。谢谢! 仅供参考-您不需要严格地在 $.css() 中附加“px” 【参考方案1】:从 1.2.6 开始不推荐使用 .position() 尺寸插件,请改用 .css():
var myTop = markeranim.css("top");
var myLeft = markeranim.css("left");
http://docs.jquery.com/Plugins/dimensions
【讨论】:
我想获取 css 值而不是分配它们?你说的不是赋值吗?.position()
不是插件,它在 jQuery core 中:)
@Nick Craver,你说得对,我误解了上面文档链接中的 cmets,希望 .css() 无论如何都能解决问题。
@ Nick:我在脚本前面使用了另一个函数来将类添加到我正在检查的 div 中。这是在我正在研究的谷歌地图应用程序中,我没有意识到谷歌如何在地图上放置标记的 dom 结构对于 IE 来说是完全不同的,所以我假设带有标记的 div 有这些类他们没有。希望这是有道理的。现在回到绘图板上如何在 IE 中对适当的 div 进行分类。一旦我发现我的动画功能就可以正常工作(我做了一些测试以在 IE 中证明这一点)。谢谢!以上是关于IE 无法识别 jQuery 选择器的主要内容,如果未能解决你的问题,请参考以下文章