У меня возникают трудности с обновлением содержимого DIV с помощью текущего слайда слайд-шоу jQuery Cycle.
Вот функция ползунка, она в настоящий момент выводит текущий слайд как предупреждение (и работает).
$(function () {
$('#slideshow').cycle({
fx: 'none',
timeout: 1,
continuation: 1,
speed: 'fast',
before: function (curr, next, opts) {
alert("Current slide " + opts.currSlide);
}
});
DIV выглядит следующим образом:
<div id="test">Hello</div>
И код, который я пытаюсь использовать (чтобы заменить конец кода выше):
$(function (curr, next, opts) {
var test = document.getElementById("test");
test.innerHTML = opts.currSlide;
});
Любые мысли о том, почему DIV не обновляется текущим слайдом #? К сожалению, ничего не происходит. Я все еще изучаю свой путь вокруг JS, поэтому любые указатели очень ценятся! Спасибо за ваше время.
Эта переменная в opts
объекта (opts.currSlide
) не определена вне функции цикла/плагин, так что вы должны передать его функции
$(function () {
$('#slideshow').cycle({
fx: 'none',
timeout: 1,
continuation: 1,
speed: 'fast',
before: function (curr, next, opts) {
getCurrSlide(opts.currSlide);
}
});
}):
function getCurrSlide(curr){
$("#test").html(curr);
}
ОК. Я сделал скрипку, и есть несколько замечаний. Сначала ваше действие, добавленное к начальному циклу, будет удалено, когда вы нажмете на свои кнопки. Здесь я сделал начальный цикл делать то, что вы хотите, и добавил кнопку, которую вы можете использовать для получения "моментального снимка". Обратите внимание, что селектор получает только видимое в настоящее время изображение.
мясо:
$('#slideshow').cycle({
fx: 'none',
timeout: 1,
continuation: 1,
speed: 'fast',
before: function (curr, next, opts) {
$('#testNum').html("Current slide " + opts.currSlide);
var $img = $("#slideshow img:visible").clone();
$("#test").html('').append($img); }
});
// The button will work after you click fast,slow, or reverse.
// The reason for that is the .cycle function above replaces it
// as fast as you can see it.
$("#btnCopy").on("click",function(){
var $img = $("#slideshow img:visible").clone();
$("#test").html('').append($img);
});