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 选择器的主要内容,如果未能解决你的问题,请参考以下文章

以下方法无法识别 UIButton 选择器

Angularjs验证 - 无法识别引导日期选择器输入

Swift:手势识别器无法识别的选择器发送到实例

应用程序崩溃,错误无法识别选择器发送到实例

无法识别商业信用卡表单的文本输入 CSS 选择器

OCMock 无法识别被调用的选择器