javascript - jQuery $(this).position().top 在 Chrome 中不起作用

标签 javascript jquery google-chrome

我想知道是否有任何原因导致这段代码无法运行...

top = $(this).find('ul').position().top;

它适用于 IE、Firefox 和 Safari,但是当我在 Chrome 中提醒输出时,它说 DOM 窗口对象...我需要一个整数。为什么它会警告 DOM 窗口对象?

最佳答案

你确定你真的在提醒 that top?回想一下,top 是浏览器托管的 JavaScript 中预先存在的全局变量(它是 window.top,顶级窗口)。

更新:有趣的是,Chrome 不会让您隐式覆盖top(这可能是件好事):Demo .只需在该代码所在的任何函数中声明您的变量(无论如何总是一个好主意)(该代码在一个函数中,对吗?),这将是shadow它,这样就可以了:Demo .例如:

var top = $(this).find('ul').position().top;

声明变量很重要,以避免成为 Horror of Implicit Globals 的牺牲品。 .正如您在这种情况下发现的那样,避免使用全局变量总是最好的,因为 Chrome 甚至不允许您将 top 用作全局变量(如果您声明它)(再次保护 window.top )。

关于javascript - jQuery $(this).position().top 在 Chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6420323/

相关文章:

javascript - 我似乎不知道如何修复我的 javascript 中的两个 lints。有人可以帮我理解吗?

javascript - Div 中的文本卡在右侧

javascript - 使用javascript获取title属性

javascript - Google 当前位置的 PERMISSION_DENIED

javascript - 为所有浏览器选项卡设置 Cookie

javascript - Mouseover Mouseout 内容重叠

javascript - sequelize 未定义 - Sequelize 和 consign

javascript - 如何从文件中导出多个对象

javascript - 为尚未附加的元素绑定(bind) "insertion into DOM event"

jquery - 如何在 WebKit 浏览器中使用 jQuery .focus()