#javascript #jquery
Здравствуйте. Подскажите, пожалуйста, каким образом нужно изменить скрипт, чтобы
можно было работать с условием "если то" для следующей функции:
-- Jquery --
$(document).ready(function(){
$('.photo li').waitForImages(function() { // Функция, которая следит, загрузилась
ли картинка.
if($(this)){
$(this).show(); // если картинка найдена, показываем элемент с картинкой.
}else{
$(this).remove(); // если нет, удаляем элемент.
}
});
});
-- CSS --
.photo:nth-child(1) li:nth-child(1) {background: url("../img/cake.jpg") no-repeat;}
- такая картинка есть.
.photo:nth-child(2) li:nth-child(1) {background: url("../img/caked.jpg") no-repeat;}
- такой нет.
.photo:nth-child(3) li:nth-child(1) {background: url("../img/cakef.jpg") no-repeat;}
- такой нет.
.photo li {
display: inline-block;
border: 1px solid black;
width: 270px;
height: 200px;
}
-- HTML --
Ответы
Ответ 1
https://jsfiddle.net/95gz9sav/ $(function(){ $('.photo li').waitForImages({ each: function(loaded, count, success) { $(this)[success ? 'show' : 'remove'](); }, waitForAll: true }); });Ответ 2
Решение может быть подобным этому: Работающий пример http://jsbin.com/kikedeqeki/edit?html,output $(function(){ $('.photo > li').each(function(i, el) { var bgImg = new Image(); bgImg.src = getComputedStyle($(this).get(0)).backgroundImage.split('"')[1]; bgImg.onerror = function(){ $(el).remove(); }; }); });
Комментариев нет:
Отправить комментарий