каждая функция - PullRequest
       0

каждая функция

0 голосов
/ 20 марта 2012

hii У меня есть 680 кнопок на странице, и я хочу запустить функцию для них всех с каждой функцией.вот код:

$("button#check_all").button().click(function(){
    btns=$(".viewport").find('.third_cat_chb');//here are all 680 btns
    this_btn=$(this);
    count=btns.size(); //680
    cpt=0;
    btns.each(function(){
        cpt += 100/count;
        if($(this).is(".cat_chb_off")){
            $(this).trigger('click');
        }
        $("#progressbar").progressbar({ value : cpt});
    });
    $("#progressbar").hide('slow');
});

Проблема в том, что я хочу, чтобы кнопки менялись сразу, когда я нажимал, чтобы выбрать их все, не для установки интервала, а для завершения каждой кнопки в одиночку и в режиме онлайн.но в действительности происходит зависание сайта на 35 секунд, и я вижу, что кнопки внезапно изменились.

Ответы [ 2 ]

1 голос
/ 20 марта 2012

Проблема заключается в индикаторе выполнения, вы не просто устанавливали значение внутри каждого, вы инициализировали его в каждом цикле.

Инициализировали индикатор выполнения вне каждого, внутри каждого устанавливалось только значение:

$( "#progressbar" ).progressbar( "option", "value", cpt );

Однако, если вы заметите какие-либо изменения (в индикаторе выполнения или кнопках), это будет зависеть от браузера, это действительно быстрый процесс с предложенной модификацией, и обычно браузеры не отображают данные заново, когда вывнутри цикла.

0 голосов
/ 21 марта 2012

вот ответ:

//check buttons:
$("button#check_all").button({
    icons: {
        primary: "ui-icon-battery-3"
    },
    text: false
}).click(function(){
    btns=$(".viewport").find('.third_cat_chb');
    this_btn=$(this);
    count=btns.size();
    move_over(0,1);
});

function move_over(i, time){
    var btn = btns.eq(i);
    cpt += 100/count;
    if(btn.is(".cat_chb_off")){
        btn.trigger('click');
    }
    $("#progressbar").progressbar({ value : cpt});

как видите, я не использую каждый из них вообще !!setTimeout (function () {move_over (++ i, время);}, время)}

...