Изменить предварительно загруженные изображения в jquery

Я пытаюсь изменить изображения одним щелчком мыши. Изображения должны быть предварительно загружены, но я даже не могу сказать, загружаются ли они предварительно. Новичок в Jquery, пожалуйста, помогите.

<script src="https://code.jquery.com/jquery-1.10.2.js">
$(document).ready(function() {
 var preloads = [
    'images/01.jpg',
    'images/02.jpg',
    'images/03.jpg',
    'images/04.jpg',
    'images/05.jpg',
 ]; 

 $(preloads).each(function(){
     $('')[0].src=this;
 });
 var i = 0;


});

$("img").click(function() {
    ++i;
    if(i = 17)  {
        i = 0;
    }
    $(this).src = preloads[i];
});
</script>

1 ответ

Есть несколько вещей не так с тем, что у вас есть. Во-первых, вы не можете указать src для <script> тег с телом, потому что тогда он не будет выполнять то, что у вас внутри тега, а только то, что загружено из источника. Во-вторых, измените строку $('')[0].src = this; в $('<img/>').get(0).src = val; и измените объявление функции на function (i, val) { так что вы передаете строку, связанную с каждым индексом массива.

Итак, вот решение:

<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script>
  $(document).ready(function() {
    var preloads = [
      'images/01.jpg',
      'images/02.jpg',
      'images/03.jpg',
      'images/04.jpg',
      'images/05.jpg',
    ];

    $(preloads).each(function(i, val) {
      $('<img/>').get(0).src = val;
    });
    var i = 0;

    $("img").click(function() {
      ++i;
      if (i = 17) {
        i = 0;
      }
      $(this).get(0).src = preloads[i];
    });
  });
</script>
Другие вопросы по тегам