У меня есть страница, где я загружаю несколько изображений из Википедии. Изображения Википедии имеют путь к файлу, который вы должны вычислить из имени файла, и который затем необходимо добавить к следующему: http://upload.wikimedia.org/wikipedia/commons/thumb/
.Хром застрял на этом коде jquery, FF в порядке
Есть две проблемы.
В меньшинстве фотографий, URL-адрес имеет
/en/
вместо/commons/'
, но нет никакого способа узнать, когда.Некоторые из ссылок устарели и не возвращают никакого изображения, оставляя меня с уродливым контейнером div.
Так я первый попытке загрузить изображение с commons
и написал код, который проверяет, если изображение дает ошибку. Если это так, он заменяет commons
на en
. Затем, если изображение STILL дает ошибку (это означает, что изображение вообще не существует), код заменяет весь src на ''
и скрывает div.
Все это отлично работает с FF, но оно падает в Chrome. Я получаю бесконечные ошибки jquery.min.js:2 Uncaught RangeError: Maximum call stack size exceeded
. Если бы кто-нибудь мог сказать мне, что проблема с моим кодом и помочь мне исправить это, я бы очень признателен!
Вот код:
$('#imgid').error(function()
{
$(this).one("error", function() {
$(this).attr('src','');$(this).parent().parent().parent().hide();
}).attr('src', $(this).attr('src').replace("/commons/", "/en/"));
});
ТИА!
EDIT: HTML вокруг изображения выглядит следующим образом:
<div data-id="7551400" class="pin">
<div id="sc7551400" class="scrol">
<a class="PinIm" target="_blank" name="http://upload.wikimedia.org/wikipedia/commons/c/c0/Cage_de_Faraday.jpg" href="">
<img class="PinImageImg" alt="" src="http://upload.wikimedia.org/wikipedia/commons/thumb/c/c0/Cage_de_Faraday.jpg/155px-Cage_de_Faraday.jpg" style="width:155px" id="img-7551400">
</a>
</div>
</div>
Может ли вы чау в HTML, чтобы получить то, что является 'родителем(). parent(). parent() 'element? Возможно, вы захотите использовать '.parents (SELECTOR)' –
Добавил html к вопросу. – Phil
Что делать, если вы попробуете '$ (this) .parents ('. Pin'). Hide();' вместо '$ (this) .parent(). Parent(). Parent(). Hide();' –