首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jquery在多个类之间进行更改

使用jquery在多个类之间进行更改
EN

Stack Overflow用户
提问于 2013-04-17 03:33:11
回答 2查看 124关注 0票数 1

我有以下代码:

代码语言:javascript
运行
复制
<div class="drawing1"></div>    
<button id="start">Begin</button>

当用户单击按钮时,分配给DIV元素的类应该从drawing1更改为drawing5,并通过其间的每个绘图(总共有5个绘图)。它也应该有大约500的延迟()。我的第一个想法是:

代码语言:javascript
运行
复制
$('div').delay(800).toggleClass('drawing1 drawing2');

这是可行的,但当我尝试添加其余的绘图时(使用toggleclass和add/remove class尝试了几种方法),它要么跳到最后一个,要么只添加第二个。

我如何设置才能从一个绘图类转到下一个绘图类,一个接一个地检查每个绘图类,并对每个绘图类应用延迟。

EN

Stack Overflow用户

回答已采纳

发布于 2013-04-17 03:38:37

代码语言:javascript
运行
复制
var i = 2; //Assumes drawing1 is already applied to the div
var nextDrawing = function(){
    $("div").removeClass()
            .addClass("drawing"+i);

    i = ((i + 1) % 5); //To cycle from 1 to 5
    i = i == 0 ? 5 : i;
}
$('#start').click(function(){
    setInterval(nextDrawing, 500);
});

应该能行得通。

编辑:如果有人多次单击该按钮,则以下修改对于清除间隔可能很有用。

代码语言:javascript
运行
复制
var i = 2; //Assumes drawing1 is already applied to the div
var nextDrawing = function(){
    $("div").removeClass()
            .addClass("drawing"+i);

    i = ((i + 1) % 5); //To cycle from 1 to 5
    i = i == 0 ? 5 : i;
}

var intervalID = undefined;
$('#start').click(function(){
    if( intervalID != undefined )
    {
        clearInterval(intervalID);
    }
    intervalID = setInterval(nextDrawing, 500);
});

下面是一个有效的示例:http://jsfiddle.net/ajhuU/

票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16045551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档