1

我需要在 Drupal7 生成的 HTML 站点(已安装 jQuery_update)中找到表格 TD 元素的正确 .offset() 位置。我用

        $('#contenttable td').each(function(){ 
            console.log($(this).offsetParent());
            console.log($(this).offset().left);
        });

在我的

jQuery(function($) {
    //$(document).ready(function(){

我的 script.js 获得 offset().left-position 但控制台总是跟踪我所有 TD 的“0”。

当我使用 Safari 开发者控制台时,输出

jQuery('#contenttable td:nth-child(2)').offset().left

是'1728',所以它似乎完全有效。但为什么它在我的 DOCUMENT.READY 中不起作用?

.offsetParent() 是 BODY 顺便说一句......并且将某些父母 DIV 的位置更改为绝对或相对也没有任何改变。太好了!

编辑:似乎根本不适用于任何元素。

4

1 回答 1

2

不幸的是,jQuery.offset它不适用于隐藏元素,因为浏览器根本不会费心渲染它们。因此,如果可能,您需要使元素可见以获取其offset. 根据jquery:获取隐藏元素的偏移量,您应该能够调用.show()表/内容,获取所需的offset,然后调用.hide()它。这个显示/隐藏对用户来说不应该是显而易见的,因为它不会重新绘制页面,因为它在同一个执行事件中。

于 2013-01-25T17:15:59.760 回答