Как проверить с помощью Jquery, существует ли элемент изображения в DOM на основе атрибута src? - PullRequest
2 голосов
/ 25 февраля 2012

У меня есть несколько изображений для предварительного просмотра, которые можно увеличить. Если пользователь нажимает «увеличить», изображение кэшируется:

var zoomImg = new Image();
      zoomImg.onload = function() {
      image.attr('src', zoomlist[currentFrame]);
   });

Что мне нужно знать, это как проверить, кэшировано ли изображение или нет, чтобы узнать, должен ли я показать загрузчик.

Ответы [ 2 ]

3 голосов
/ 25 февраля 2012

Вы можете использовать селектор атрибутов следующим образом.

if($('img[src="imageSource"]').length){
     //Image is present
}

Примечание. Это позволит найти элемент img в DOM, а не в кеше.

1 голос
/ 25 февраля 2012

Вы можете проверить, кэшировано ли изображение, проверив его завершенность и состояние готовности.

var zoomImg = new Image();
zoomImg.src = zoomlist[currentFrame];
if (zoomImg.complete || zoomImg.readystate === 4) {
    image.attr('src', zoomlist[currentFrame])
}
else {
    showLoader();
    zoomImg.onload = function() {
        hideLoader();
        image.attr('src', zoomlist[currentFrame]);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...