offsetParent () в jQuery не возвращает ожидаемого относительного позиционного предка - PullRequest
4 голосов
/ 19 марта 2011

У меня есть некоторый HTML со следующей примерной структурой и позиционированием:

<div class="grand-parent" style="position: absolute">
  <div class="parent" style="position: relative">
    <div class="child"></div>
  </div>
</div>

В моем виджете jQuery я пытаюсь вставить элемент, который находится внутри «родительского смещения» элемента, на который нацелен виджет. Для этого у меня, по сути, есть такой код:

var targetElement = $('.child');
$('<div/>').appendTo(targetElement.offsetParent());

К сожалению, элемент выглядит как дочерний элемент .grand-parent вместо parent. Мое понимание offsetParent() (и документация, кажется, подтверждает это) заключается в том, что offsetParent() должен возвращать .parent, потому что он расположен относительно. Правильно ли я понимаю offsetParent или есть проблема с jQuery (я использую 1.4.1).

1 Ответ

6 голосов
/ 19 марта 2011

Согласно https://developer.mozilla.org/en/DOM/element.offsetParent, offsetParent не работает так, как я ожидал, если родитель не отображается (display: none).В моем случае элемент контейнера - это просто.

...