Как обнаружить изменения в положении с помощью jquery? - PullRequest
1 голос
/ 04 октября 2011

Я пытаюсь разработать виджет, который заменяет выбранный элемент формы. Это блочный элемент, поэтому он может быть на 100% его контейнера. Примерно так:

<element style="width: 100%">Please choose</element>
<options style="display: none">
    <option>Option 1</option>
</options>

У него есть список параметров, который открывается по щелчку, а его размер и положение изменяются в соответствии с элементом триггера.

Теперь, когда я изменяю размер окна или что-то в моем макете, мне нужно изменить положение списка опций. Я понял, что могу легко связать с window.resize() для options.width() изменений. Единственная проблема заключается в том, как обнаружить изменения положения элемента и изменить положение.

Есть ли какое-либо событие для привязки к изменениям положения или смещения?

Спасибо. Дмитрий.

1 Ответ

1 голос
/ 04 октября 2011

Семантически параметры должны быть дочерними по отношению к «элементу выбора». Как, вы знаете, с традиционным select.

<element style="width: 100%">
Please choose
<options style="display: none">
    <option>Option 1</option>
</options>
</element>

Таким образом, вы можете использовать абсолютное позиционирование, чтобы всегда позиционировать options в нужном месте относительно его родителя. Для этого вам нужно только указать position: relative для element (или фактически любое другое значение position, отличное от static).


Вполне возможно, что вы подразумевали только свой HTML в качестве быстрого примера, но вам лучше использовать стандартный тег HTML (например, div, ul, в зависимости от того, что подходит вам больше всего) со специальным классом, присоединенным это.

...