Элемент jQuery бесконечный цикл элементов, которые не отображаются последовательно и скрываются [дублировать]

Теперь в tampermonkey вы можете использовать

// @grant        window.close

, а затем просто назовите

window.close();
4
задан Dentor Uman 8 June 2012 в 13:53
поделиться

3 ответа

my take:

http://jsfiddle.net/yyY28/

$('.set').each(function(){
    (function($set){
        setInterval(function(){
            var $cur = $set.find('.current').removeClass('current');
            var $next = $cur.next().length?$cur.next():$set.children().eq(0);
            $next.addClass('current');
        },1000);
    })($(this));

});​

версия 2:

​setInterval(function(){
    $('.set').each(function(){
        var $cur = $(this).find('.current').removeClass('current');
        var $next = $cur.next().length?$cur.next():$(this).children().eq(0);
        $next.addClass('current');
    });
},1000);​
9
ответ дан Andy 17 August 2018 в 23:03
поделиться
  • 1
    Это работает отлично, и это на самом деле меньше кода, чем мой оригинал. Удивительно! Благодаря! – Dentor Uman 8 June 2012 в 14:10
  • 2
    Вы назначаете каждому .set новый setInterval, поэтому через пару минут наборы будут работать синхронно. – VisioN 8 June 2012 в 14:19
  • 3
    @VisioN хороший пункт. Я добавил вторую версию, которая не может выходить из синхронизации и более элегантна. edit: О, это почти ваша версия: P – Andy 8 June 2012 в 14:27
  • 4
    @Andy Так же хорошо, как и я: D – VisioN 8 June 2012 в 14:27

попробуйте следующее:

function changeCurrent(){
    $('.set').each(function(){
        var currentSubDiv = $(this).children('.current');
        currentSubDiv.removeClass('current');
        currentSubDiv.next().addClass('current');
    })
}

setInterval(changeCurrent,timeInMillis);
0
ответ дан Th0rndike 17 August 2018 в 23:03
поделиться

Может быть, я вас не понял, но это то, что вы ищете?

function loop() {
    $(".set").each(function() {
        var current = $(this).children(".current").removeClass("current");
        var i = current.next().length ? current.index() : 0;
        current.siblings(":eq(" + i + ")").addClass("current");
    });
}

setInterval(loop, 500);​

DEMO: http://jsfiddle.net/jGcsh/

2
ответ дан VisioN 17 August 2018 в 23:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: