Как справиться с этим циклом jquery?

У меня есть массив изображений, которые я хочу перебирать бесконечно, т. е. 1, 2, 3, 1, 2, 3...

Сначала я попытался сделать это, используя следующий код:

var images = [
  "/images/image1.jpg",
  "/images/image2.jpg",
  "/images/image3.jpg"
];

var obj = { currentValue: 0 };
var maxValue = 2;            

//loop through the items
var infiniteLoop = setInterval(function() {
  if(obj.currentValue == maxValue) { 
    obj.currentValue = 0;                                           
  }

  // ... Code to fade in currentItem ...

  obj.currentValue++;
}, 5000);

I' d читал, что это правильный метод передачи переменной по ссылке, но по какой-то причине я никогда не могу установить obj.currentValue обратно в 0, когда все изображения пропущены.

Я придумал альтернативный способ было бы установить значение поля html:

var images = [
  "/images/image1.jpg",
  "/images/image2.jpg",
  "/images/image3.jpg"
];

var maxValue = 2;            

//loop through the items
var infiniteLoop = setInterval(function() {
  if(parseInt($('#currentItem').val()) == maxValue) { 
    $('#currentItem]').val('0');                                           
  }

  //... code to fade in currentItem ...

  var tmp = parseInt($('#currentItem').val());
  tmp++;                                  
  $('#currentItem').val(tmp);
}, 5000);

<input type="hidden" id="currentItem" name="currentItem" value="0" />

Однако у меня все еще та же проблема.По какой-то причине, всякий раз, когда я дохожу до конца списка изображений, я не могу установить значение скрытого поля и мой бесконечный цикл никогда не перезапускается.

Я пропустил что-то очевидное здесь? Кажется, я не могу понять, как заставить это работать.

Если у кого-то есть более эффективный метод достижения этого, я бы также буду очень благодарен, если поделитесь :-)

Спасибо

-121---8498 57- F# - умножить int на floatВозможно, глупый вопрос, но я только начал работать с F# и у меня возникла небольшая проблема. Скажем, у меня есть такая функция: let multiplyByTwo x = x * 2 Когда я вызываю ее так: let result = ...

Вероятно, глупый вопрос, но я только начал работать с F#, и у меня есть немного проблема.

Скажем, у меня есть такая функция:

let multiplyByTwo x = x * 2

Когда я вызываю ее следующим образом:

let result = multiplyByTwo 5

Все в порядке, результат равен 10.

Когда я называю это так:

let result = multiplyByTwo 2.5

Я ожидаю получить в результате 5 или 5.0. Однако фактический результат таков:

let result =multiByTwo 2.5;;
------------------^^^

stdin(4,28): ошибка FS0001: это Ожидалось, что выражение будет иметь тип

int
 

, но здесь имеет тип

float

Поскольку я хочу, чтобы эта функция была несколько универсальной (т. е. принимала как числа с плавающей запятой, так и целые числа), мне это не нравится. Мой вопрос, конечно: как это решить?

7
задан Leon Cullens 30 May 2012 в 21:57
поделиться