Javascript 如何使jQuery滑块适用于生成的ID?
我已经创建了自动生成的ID,例如 gallary-item-0、gallery-item-1、gallery-item-1 等等。如何配置Javascript 如何使jQuery滑块适用于生成的ID?,javascript,php,jquery,carousel,slideshow,Javascript,Php,Jquery,Carousel,Slideshow,我已经创建了自动生成的ID,例如 gallary-item-0、gallery-item-1、gallery-item-1 等等。如何配置jQuery为每个id启动滑块。 这是我写的代码,但它只适用于第一个ID var i = 0; sleepTime = setInterval(function () { var id = $(this).attr("id"); $('#gallery-item-'+i).ionImageSlider({
jQuery
为每个id启动滑块。
这是我写的代码,但它只适用于第一个ID
var i = 0;
sleepTime = setInterval(function () {
var id = $(this).attr("id");
$('#gallery-item-'+i).ionImageSlider({
slideWidth: 150,
minSlides: 2,
maxSlides: 10,
moveSlides: 1,
slideMargin: 50,
pager: false
});
i++;
clearInterval(sleepTime);
}, 3000);
});
不要在调用它的地方调用
clearInterval(sleepTime)
,因为它只会触发一次,就像setTimeout
创建一个变量,该变量包含id以gallery item
开头的所有项目的计数,然后在达到计数时在处理程序中调用clearInterval
var i = 0,
total = $('[id^="gallery-item-"]').length,
sleepTime = setInterval(function () {
$('#gallery-item-'+ i).ionImageSlider({
slideWidth: 150,
minSlides: 2,
maxSlides: 10,
moveSlides: 1,
slideMargin: 50,
pager: false
});
i++;
if (i == total - 1) {
clearInterval(sleepTime);
}
}, 3000);
现在还不清楚您打算在3秒后全部显示计时器,还是在3秒后显示每个计时器 没有计时器:
for (var i=0;i<2;++i) {
$('#gallery-item-'+i).ionImageSlider({
slideWidth: 150,
minSlides: 2,
maxSlides: 10,
moveSlides: 1,
slideMargin: 50,
pager: false
});
}
使用多定时器:
for (var i=0;i<2;++i) {
var loopI = i;
setTimeout(function() {
$('#gallery-item-'+loopI).ionImageSlider({
slideWidth: 150,
minSlides: 2,
maxSlides: 10,
moveSlides: 1,
slideMargin: 50,
pager: false
});
}, 3000 + (i+1));
}
for(变量i=0;最后一个})代码>不匹配。复制和粘贴时出现错误吗?我不知道ionImageSlider是如何工作的,但您可以尝试使用来实例化silder:$('[id^=“gallery item-”).ionImageSlider()
TrysetTimeout
而不是setInterval/clearInterval,intervalIt只对第一个有效,因为你在第一个过程中清除了计时器,所以它永远不会被i>0调用。非常感谢。第一个代码帮助很大。现在我有了和ID-s一样多的滑块,但图像来自不同的ID-s(div ID-s)如第一张幻灯片所示,即#gallery-item-0。下面的代码如何生成img结构:$('.gallery-item img')。每个(函数(){var src=$(this).attr(“src”);var bigSrc=src.replace(“-150x150”,”);$(this.wrap(“););问题可能是由闭包引起的。有关详细信息,请检查SO。此处的第三个代码将处理该问题。最有可能的是您的i var是global.p.s。该div还有一个类名为.gallery item。这是什么意思?
for (var i=0;i<2;++i) {
var loopI = i;
setTimeout(function() {
$('#gallery-item-'+loopI).ionImageSlider({
slideWidth: 150,
minSlides: 2,
maxSlides: 10,
moveSlides: 1,
slideMargin: 50,
pager: false
});
}, 3000 + (i+1));
}