jUqery: как определить количество картинок 
		
		
		
		Доброго дня всем. 
	Есть вертикальный слайдер slick. Он крутит несколько картинок, которые образуют одну большую картинку (рич для товаров, как на вб). В каждом товаре разное кол-во картинок. Из-за этого возникает небольшая проблема - слайдер скроллит несуществующие картинки, хотя я их скриптом убрал. 
$(function(){    
    $('.slick-slide img').on("error", function(){
        $(this).hide().closest('.slick-slide').remove();
    }); // если фото не существует, убираем целиком контейнер с ним
});
Для каждого товара создаётся своя папка, где может быть от 3 до 8 фото. Сейчас я в скрипте указал максимальное кол-во фото - 8. Дальше в диве циклом выводятся эти фото: 
for(var i = 1; i < 8; i++){
        document.write('<div><img src="/image/catalog/-rich/<?php echo $model; ?>/<?php echo $model; ?>-' + i + '.jpg" /></div>');
    }
Как можно заменить цифру в счётчике i < 8 на что-то универсальное, типа i < n, и чтобы скрипт самостоятельно определял, сколько в папке фото? Скриншот для понимания: красным выделил существующие фото, они подгрузились, всё ок. жёлтым выделил блок с несуществующими фото, которые слайдер slick сам резервирует под них место, т.к. по счётчику i < 8 он и должен их выводить. Т.е. сами фото он не выводит, т.к их просто нет, но пустое пространство для них выделяет.  | 
	
		
 tp-20, 
	что мешает запустить инициализацию слайдера после строки 4?  | 
	
		
 рони, спасибо, идеально)) просто переставить скрипты местами) :) :thanks: 
	 | 
	
		
 Вложений: 1 
		
		
		В продолжение темы.. 
	В чём может быть причина? Не срабатывает код on error. Вернее работает как-то через раз, но чаще не работает. На телефоне работает только один раз - после чистки кэша. Со второй перезагрузки страницы опять не работает. По логике должно работать так: если картинка не подгрузилась (неверный путь или нет картинки на сервере), то нужно спрятать родителя - контейнер с отсутствующей картинкой. Скрипт: 
$(document).ready(function() {    
    $(function(){    
        $('.slick-slide img').on("error", function(){    // картинка не подгрузилась
            $(this).closest('.slick-slide').remove();    // значит полностью удаляем родителя
        });
    });
});
И блок с картинками тоже в скрипте, т.к. там счётчик 
for(var i = 1; i < 7; i++){
        document.write('<div class="slick-slide"><img src="/image/catalog/-rich/<?php echo $model; ?>/<?php echo $model; ?>-' + i + '.jpg" /></div>');
    }
В итоге выглядит это так: (скриншот)  | 
	
		
 tp-20, 
	инфа для медитации ... проверяем наличие картинок, массив "живых" картинок, обёрнутых в div, грузим в нужный блок, запускаем инициализацию слайдера. 
<!DOCTYPE html>
<html>
<head>
        <title>Untitled</title>
        <meta charset="utf-8">
        <style type="text/css">
        </style>
        <script>
document.addEventListener( "DOMContentLoaded" , function() {
    "use strict"
let imgs = [
        'https://www.florissimo-shop.ru/upload/resize_cache/iblock/266/256_256_1/4100.jpeg',
        'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRoTiQSapkMQDacdDcRC9L0OOzVYYT1HuyWTw&usqp=CAU',
        'https://ledforms.com/1906-medium_default_2x/10500120.jpg',
        'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ-KiKgpbTbFqKysnND1YAdMJ0qUSSa7bbUvA&usqp=CAU',
        'https://open3dmodel.com/wp-content/uploads/2020/03/Flowers-rose.jpg'
    ]
let divs = [];
imgs = imgs.map(src => {
    let img = new Image();
    img.src = src;
    return new Promise(resolve => {
        img.decode().then(() => {
        let div = document.createElement('div');
        div.append(img);
        divs.push(div);
        resolve()
        });
        img.error = resolve
    })
})
Promise.all(imgs).then(function() {
  document.querySelector('.slick-slider').prepend(...divs);
        //запускаем инициализацию слайдера
});
    });
        </script>
</head>
<body>
<div class="slick-slider"></div>
</body>
</html>
 | 
	
		
 Цитата: 
	
 
for(var i = 1; i < 11; i++){
        document.write('<div class="slick-slide"><img src="/image/catalog/-rich/<?php echo $model; ?>/<?php echo $model; ?>-' + i + '.jpg" /></div>');
}
 | 
	
		
 tp-20, 
	10 раз написать нужные вам ссылки  | 
| Часовой пояс GMT +3, время: 08:51. |