2011-02-07 3 views
1

Эта страница =>http://api.jquery.com/offset не дает адекватного объяснения необходимости использования css. Ни один из 5 или около того вопросов, которые я читал, связанные с этим вопросом, касаются вопросов CSS.Что такое необходимый css для offset.left

1) какой CSS вызовет $(this).offset.left, чтобы вернуть 'undefined'?

2) Кроме того, необходимо знать, что другие вопросы будут усложнять offset.left (например, будет $("object").hide() причиной offset.left вернуть неопределенными? И т.д.)

Мне нужно знать, что CSS будет убивать offset.left и какой CSS вернет правильное значение.

Thnx

ответ

4

$(this).offset().left всегда будет возвращать значение. jQuery определяет это значение на основе модели окна, с помощью которой браузеры отображают элементы страницы.

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

Таким образом, ответ на ваш вопрос (и причина, по которой вы не нашли ответ, который вы ищете раньше) заключается в том, что jQuery и CSS контролируют/читают базовую технологию. jQuery не чтение правил CSS.


Если скрыть элемент, то он больше не является частью модели коробки и offset().left возвращает значение 0:

DEMO:http://jsfiddle.net/9xaCe/

+0

В зависимости от того, что такое «это», он может иногда «неопределяться». Мне нужно знать только то, что вызовет $ ('someobject'). Offset.left будет «undefined». Например, если $ ('someobject') ранее был скрыт с помощью .hide(), то это смещение будет 'undefined', потому что оно скрыто. Это один из примеров. Кроме того, если div # someobject не является позицией: relative; в css jquery может сказать, что div # someobject «undefined» в зависимости от ситуации. –

+0

Существует причина, по которой так много вопросов и проблем на SO связано с offset.left –

+0

спасибо за DEMO, но проблема в том, что вы не инициируете печать после того, как она была скрыта здесь. Http://jsfiddle.net/5CYUn/ –

1

На странице вы ссылки говорит :

jQuery не поддерживает получение смещение координат скрытых элементов

Если элемент скрыт, то, думаю, .offset вернет undefined. Итак, ответ на ваш вопрос 2 - да.

+0

, но это только одна вещь, которая вызовет «неопределенный» мой ответ - это проблемы css и js, которые вызовут «undefined» и что необходимо для offset.left для удержания и integer , –

+0

что я действительно хочу, чтобы кто-то сделал, это обновить wiki wiki по этому вопросу, потому что иначе мы снимаем в темноте. Мне не нравится сидеть перед редактором css, включающим и выключая атрибуты, пока что-то не работает. Страница wiki должна объяснять типы проблем, которые будут связаны с неопределенными css или js. –

+0

thanks andrew Я снова был goofball. –

Смежные вопросы