使用javascript使元素轮流出现

时间:2015-05-21 05:41:27

标签: javascript

所以我有两个元素firstsecond;我试图让他们轮流出现;我有以下代码;

  setTimeout(setInterval(function(){
    $(".first").hide();
    $(".second").show();
  },20000),10000)

  setTimeout(setInterval(function(){
    $(".first").show();
    $(".second").hide();
  },20000),0)
似乎这些代码不起作用,有人可以告诉我什么是错的吗?

2 个答案:

答案 0 :(得分:0)

您的setTimeout()回调需要是function() {setInterval(...)}等实际功能参考。你拥有它的方式,你立即执行setInterval(),然后将结果传递给setTimeout(),这是无效的:

setTimeout(function() {
  setInterval(function(){
    $(".first").hide();
    $(".second").show();
},20000),10000);

但是,有一个更好的方法来实现这个只有一个计时器:

(function() {
    var flag = true;
    setInterval(function() {
        flag = !flag;
        $(".first")[flag ? "hide" : "show"]();
        $(".second")[flag ? "show" : "hide"]();
    }, 10000);
})();

或者,如果您最初设置隐藏/显示状态,那么您可以使用jQuery的.toggle()来反转可见性:

    $(".first").show();
    $(".second").hide();
    setInterval(function() {
        $(".first").toggle();
        $(".second").toggle();
    }, 10000);

答案 1 :(得分:0)

我找到了另一种选择:

var d=0;
  setInterval(function(){
    if(d==0){
      d=1
      $(".first").hide();
      $(".second").show();
    }else if(d==1){
      d=0
      $(".first").show();
      $(".second").hide();
    }
  },10000)