0

最初の div に「選択された」クラスがある 4 つの div があります。そのクラスを削除し、2000 ミリ秒後に次の div 番号 2 に追加したいと思います。しかし、さらに 2000 ミリ秒後に、そのクラスを削除して div 番号 3 などに追加する必要があります。しかし、これはうまくいきません。手がかりはありますか?

JavaScript

var sel = "";
function aaa() {
    $('#holder > div').each(function () {
        var isSelected = $(this).hasClass("selected");
        if (isSelected) {
            var selectedId = $(this).attr('id');
            console.log(selectedId);
            $(this).removeClass("selected");
            $("#" + selectedId).next().addClass("selected");
        }
    });
}

setInterval(aaa, 5000);

HTML

<div id="holder">
    <div id="one" class="selected"></div>
    <div id="two"></div>
    <div id="three"></div>
    <div id="four"></div>
</div>
4

3 に答える 3

1

この行で「selected」とタイプミスしました:

$(this).removeClass("selectedP");

また、選択した div に直接アクセスできます。

function aaa() {
  var $selected = $("#holder > .selected");
  var $next = $selected.next();

  // Wrap around
  if($next.length === 0) {
    $next = $("#holder > div:first-child");
  }

  $selected.removeClass("selected");
  $next.addClass("selected");
}
于 2013-11-07T17:06:50.547 に答える
1

jQuery を使用し、document.read() 関数内で:

while(someConditionThatWillStopTheMadness)
{
    setInterval(moveToNextDiv, 2000);
}

function moveToNextDiv(){
    var currentDiv = $('#holder > div.selected').removeClass("selected");
    var nextDiv = currentDiv.next().addClass("selected");
}

明らかに someConditionThatWillStopTheMadness はこれを停止するものです。たとえば、これが実際に最後の div であることを確認します。その時点で最初のものにループバックするか、ループを停止することができます

于 2013-11-07T17:08:59.100 に答える