Одна из вещей, вы можете попробовать явно ожидать, что этот конкретный элемент будет загружен, прежде чем пытаться позвонить .width()
и .height()
.
Попробуйте это:
$('#lightingData').load(function() {
...height and width manipulation here...
...don't forget about scope...
});
Вы должны поместить это внутри вашего $(document).ready(...)
, как вы хотите, чтобы документ, по крайней мере знать, что $('#lightingData')
есть. Поскольку вы получаете 0
для height
и width
, а не ошибки, я могу предположить, что они, по крайней мере, найдены, до вызова методов.
UPDATE
За комментариями, добавленными @Ian, я хочу отметить, что это будет работать только для определенных типов элементов (URL, IFrames, изображения/СМИ и т.д. - в основном ничего который должен загрузить его содержимое). Я не собираюсь обновлять код, так как то, что у меня выше, является правильным, если вы используете его для одного из этих типов элементов, и было бы глупо, если вы используете его для другого. Если вы используете его для обоих, вам нужно только добавить условие/фильтр (на основе вашей реализации), чтобы определить, должен ли этот код привязываться к этому конкретному элементу.
Нагрузка окна должна быть более чем достаточно для статического элемента. Вы добавляете элемент с javascript? –
Можете ли вы опубликовать полный пример и jsFiddle? – j08691
Покажите нам свой код –