Я пытаюсь получить доступ к ширине определенных элементов с помощью функции .width() jQuery, но иногда возвращаемое значение равно 0, когда я этого не ожидаю.Это известная проблема?Должен ли элемент быть видимым, чтобы это работало?Если есть ограничения, как я могу их обойти?
.width()
0
Если вы работаете с изображениями, обязательно запустите код в $(window).load() вместо $(document).ready(), например:
$(window).load()
$(document).ready()
$(window).load(function() { var width = $("img").width(); });
В противном случае убедитесь, что элемент видим, скрытые элементыне иметь .width() или .height() (для обоих будет возвращено 0).
.height()
Элемент должен быть загружен .. попробуйте привязать его к загрузке окна
$(window).load(function(){ alert('#img').width() });
Вы также можете попытаться явно определить ширину через css для элемента, который я предполагаю.
Вы можете проверить, является ли изображение видимым с этим дополнительным условием
$(window).load(function(){ if($("#img").is(":visible"))alert('#img').width() });