首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用jQuery连续向随机元素添加和删除类

使用jQuery连续向随机元素添加和删除类
EN

Stack Overflow用户
提问于 2013-08-07 10:42:50
回答 2查看 4.5K关注 0票数 0

假设我有一个无序的列表,其中包含十个元素。

我希望将一个类随机添加到其中一个中,然后在几秒钟后删除该类,然后无限期地使用另一个随机选择的元素重新开始。

要做到这一点,最清洁的方法是什么?

编辑:到目前为止我得到了什么:

代码语言:javascript
代码运行次数:0
运行
复制
<ul id="hideAndSeek">
  <li>...</li>
  <li>...</li>
  <li>...</li>
  <li>...</li>
  ...
</ul>

jQuery:

代码语言:javascript
代码运行次数:0
运行
复制
var random = Math.floor(Math.random() * 1000);

var shownElement = $("#hideAndSeek li");
shownElement.eq(random % shownElement.length).addClass("shown");

但是,这显然不会持续运行,而且我不知道如何在删除类之前正确设置延迟。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-07 10:55:26

您需要使用setInterval来创建一个计时器,然后您可以选择一个随机数并为该项索引设置类。

就像这样:

代码语言:javascript
代码运行次数:0
运行
复制
<ul>
    <li>one</li>
    <li>two</li>
    <li>three</li>
    <li>four</li>
    <li>five</li>
    <li>six</li>
    <li>seven</li>
    <li>eight</li>
    <li>nine</li>
    <li>ten</li>
</ul>

Javascript (w/ JQuery)

代码语言:javascript
代码运行次数:0
运行
复制
setRandomClass();
setInterval(function () {
    setRandomClass();
}, 2000);//number of milliseconds (2000 = 2 seconds)

function setRandomClass() {
    var ul = $("ul");
    var items = ul.find("li");
    var number = items.length;
    var random = Math.floor((Math.random() * number));
    items.removeClass("special");
    items.eq(random).addClass("special");
}

下面是一个有用的例子

票数 3
EN

Stack Overflow用户

发布于 2013-08-07 10:51:56

可以做这样的事情:

HTML

代码语言:javascript
代码运行次数:0
运行
复制
<ul id="randomCol">
    <li>test1</li>
    <li>test2</li>
    <li>test3</li>
    <li>test4</li>
    <li class="color">test5</li>
    <li>test6</li>
    <li>test7</li>
    <li>test8</li>
    <li>test9</li>
    <li>test10</li>
</ul>

Jquery

代码语言:javascript
代码运行次数:0
运行
复制
var tid = setInterval(changeUp, 1000);
function changeUp() {
  var i = Math.floor((Math.random()*9));
  $('#randomCol').children().removeClass('color');
   $('#randomCol').children().eq(i).addClass('color');
}

小提琴

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

https://stackoverflow.com/questions/18101314

复制
相关文章

相似问题

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