【问题标题】:jQuery offset() returning null in ChromejQuery offset() 在 Chrome 中返回 null
【发布时间】:2011-11-02 03:21:13
【问题描述】:

我有以下 HTML:

<div id="menu">
<ul>
    <li><a href="#"><img src="imagenes/user.png" width="32" height="32" alt="My Profile" title=""/></a></li>
    <li><a href="#"><img src="imagenes/photo.png" width="32" height="32" alt="Photo Gallery" title=""/></a></li>
    <li><a href="#"><img src="imagenes/bookmark.png" width="32" height="32" alt="Social Bookmarking Tools" title=""/></a></li>
    <li><a href="#"><img src="imagenes/rss.png" width="32" height="32" alt="RSS" title=""/></a></li>
    <li><a href="#"><img src="imagenes/search.png" width="32" height="32" alt="Search" title=""/></a></li>              
    <li class="selected"><a href="#"><img src="imagenes/setting.png" width="32" height="32" alt="Control Panel" title=""/></a></li>
</ul> 
<div id="box"><div class="head"></div></div></div>

还有下面的JS代码:

    $(document).ready(function () {
        var style = 'easeOutExpo';
        var default_left = Math.round($('#menu li.selected').offset().left - $('#menu').offset().left);
        var default_top = $('#menu li.selected').height();
                ... 

我遇到的问题是“$('#menu li.selected').offset()”在 Chrome 中返回 null。我收到此错误消息:“未捕获的 TypeError:无法读取属性 'left' of null”。 在 Firefox 5.0 中运行正常,我还没有在 IE 中尝试过。

谢谢!

【问题讨论】:

  • $().offset() 仅在元素不存在时返回 null。我已经在 Chromium 14 中测试了你的代码,它就像一个魅力。

标签: jquery google-chrome null offset


【解决方案1】:

根据您上面的 HTML,&lt;div id="menu"&gt; 没有结束标记。

尝试在 HTML 的末尾再添加一个 &lt;/div&gt;

【讨论】:

  • 我没有把结束标签放在这里,但我的代码中有它。谢谢!
  • 嗯,我刚刚用 Chrome 15 和 jQuery 1.6.3 测试了这个,$('#menu li.selected').offset() 对我来说很好用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
  • 1970-01-01
  • 2013-02-27
  • 2011-02-06
  • 1970-01-01
相关资源
最近更新 更多