javascript - jquery position() 在 safari 和 chrome 中无法正常工作

标签 javascript jquery google-chrome safari position

我以前见过这个问题一两次,但从来没有一个答案适用于我的问题(据我所知)。 单击链接时会出现一个工具提示。我根据类似于这样的链接的位置设置工具提示的位置:

$('#tooltip').css('left', $(this).position().left);

这在 FF、IE 等中效果很好,但在 Chrome 和 Safari 中,工具提示总是比我想要的左边大约 60 像素左右。我真的不喜欢编写特定于浏览器的代码,所以有任何人知道这会发生吗? 提前致谢。

更新: 我能够通过从链接中删除 margin:0 auto 样式来解决这个问题。 Soooo ...修复了它,但我仍然不知道为什么这是 safari 和 chrome 中的问题。

最佳答案

position() 涉及相对于包含 DOM 元素的位置,而不是屏幕上的位置。这种差异可能是由 Webkit 浏览器中元素层次结构呈现方式的差异引起的,而不是由 jQuery 中的错误引起的。

您将必须检查元素层次结构以找出导致问题的 DOM 元素,或者,如果您想相对于窗口边界内元素的位置定位工具提示,请使用 offset()相反。

关于javascript - jquery position() 在 safari 和 chrome 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5338594/

相关文章:

google-chrome - 我可以使用控制台调整Chrome窗口的大小吗?

javascript - nwjs (node-webkit) 修改网站 javascript 和 css

javascript - 是否可以重新初始化 CKEditor 组合框/下拉菜单?

jquery - XSLT 两列无序列表

java - 如何将 Comet 与 Spring MVC 一起使用?

php - 使用 jquery ajax 通过 GET 更新动态创建的图像

javascript - 如何在 JavaScript 中确认某些内容然后使用

javascript - 模型助手在 React/Flux 中属于什么位置?

ruby - 未初始化的常量 Selenium::WebDriver::Chrome::Options (NameError)

google-chrome - 在 Google Chrome 中为 PDF 添加书签