У меня есть массив изображений, которые я хочу перебирать бесконечно, т. е. 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#, и у меня есть немного проблема.
Скажем, у меня есть такая функция:
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
Поскольку я хочу, чтобы эта функция была несколько универсальной (т. е. принимала как числа с плавающей запятой, так и целые числа), мне это не нравится. Мой вопрос, конечно: как это решить?