我可以设置间隔,并清除点击它。我想再来一次setInterval,但不知道怎么做。我想要的是当有人点击一个图标时,setInterval应该是清晰的(最好是等待几秒钟),然后重新启动。这是我的密码
jQuery(document).ready(function() {
var timer = setInterval(function(){
var finding = jQuery('ul.hi-icon-wrap').find( "li.active" );
var tabcontentActive = jQuery('div.tab-content').find( "div.active" );
var last = jQuery('ul.hi-icon-wrap li').last();
var nextItem = jQuery(finding).next();
var tabid = jQuery(nextItem).find('a').attr('id');
if(finding.is(last)) {
var tabid = jQuery('ul.hi-icon-wrap li:first').find('a').attr('id');
}
//alert(tabid);
jQuery(finding).removeClass('active');
jQuery(finding).next().addClass('active');
if(finding.is(last)) {
jQuery('ul.hi-icon-wrap li:first').addClass('active');
}
jQuery(tabcontentActive).removeClass('active');
jQuery('div.tab-content').find('div#'+tabid).addClass('active');
}, 3000);
$("ul.hi-icon-wrap li").click(function () {
//alert('ok');
clearInterval(timer); //clear interval
timer = setInterval(timer, 300); //I am unable to restart here.
});
});
发布于 2018-05-10 08:11:04
setInterval
/setTimeout
只返回指示进程引用的数字,而不是实际调用的函数。再次调用相同的函数。
var fooFunction = function(){
var finding = jQuery('ul.hi-icon-wrap').find( "li.active" );
var tabcontentActive = jQuery('div.tab-content').find( "div.active" );
...
}
jQuery(document).ready(function() {
var timer = setInterval(fooFunction, 3000);
$("ul.hi-icon-wrap li").click(function () {
clearInterval(timer); //clear interval
timer = setInterval(fooFunction, 300); //I am unable to restart here.
});
});
发布于 2018-05-10 08:13:31
在不同的函数中添加setInterval
逻辑,并在单击按钮时调用该函数。
jQuery(document).ready(function() {
var timer;
startInterval();
function startInterval(){
timer = setInterval(function(){
var finding = jQuery('ul.hi-icon-wrap').find( "li.active" );
var tabcontentActive = jQuery('div.tab-content').find( "div.active" );
var last = jQuery('ul.hi-icon-wrap li').last();
var nextItem = jQuery(finding).next();
var tabid = jQuery(nextItem).find('a').attr('id');
if(finding.is(last)) {
var tabid = jQuery('ul.hi-icon-wrap li:first').find('a').attr('id');
}
//alert(tabid);
jQuery(finding).removeClass('active');
jQuery(finding).next().addClass('active');
if(finding.is(last)) {
jQuery('ul.hi-icon-wrap li:first').addClass('active');
}
jQuery(tabcontentActive).removeClass('active');
jQuery('div.tab-content').find('div#'+tabid).addClass('active');
}, 3000);
}
$("ul.hi-icon-wrap li").click(function () {
//alert('ok');
clearInterval(timer); //clear interval
startInterval(); //I am unable to restart here.
});
});
https://stackoverflow.com/questions/50268338
复制相似问题