我想知道是否有任何原因导致这段代码无法运行...
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/