我有一个可变数量的div标有“wrap”和一个数字
<div id="wrap0">Fixed text</div>
<div id="wrap1"></div>
<div id="wrap2"></div>
<div id="wrap3"></div>
Wrap0是一个固定的文本,包装1和后面是从mysql php生成的 . 我想在一段时间内显示wrap0,隐藏wrap0并显示wrap1的内容,隐藏wrap1并再次显示wrap0,隐藏wrap0并显示wrap 2等 .
我已设法使用jquery在间隔之间切换:
var $j = jQuery.noConflict();
$j(document).ready(function () {
setInterval(function () {
$j.fx.off = true
$j('#wrap1').toggle('show');
$j('#wrap0').toggle('hide');
}, 3000);
});
但是,这仅适用于2个div . div的数量(换行)是可变的,它取决于mysql表中的行数 .
我查看了不同的脚本,但无法弄清楚如何自动运行,大多数脚本都使用clickfunction,它隐藏了$(this),这是当前的div .
如果它随机切换会更容易吗?
4 回答
如果
#wrapN
元素没有改变,您可以将wraps
变量向上移动一个闭包以提高性能 .有关选择器信息,请参阅official docs
编辑
正如评论中所指出的,IE8或以下版本不支持
indexOf
,在这种情况下,您可以使用$.inAarray:注意:如果换行没有改变,那么
jessegavin
的解决方案会更高效 .您需要创建一个包含所有包装器的数组,以及跟踪数组中当前位置的方法 .
像下面这样的东西 . See a Demo
你可以尝试一些简单的事情:
你要做的是为每个div分配一个类,然后控制是否隐藏或显示类名,而不是ID .