@DivineDraft

Каким образом запустить функцию после обновления?

Есть функция, которая заставляет нужный элемент обновляться с опр. частотой, указанной в селекторе, необходимо, чтобы оно сохраняло свое значение при перезагрузке на куках.
Функция:
var interval,
 count,
 tick;

$(document).on('change', '#select', function() {
 clearInterval(interval);
 clearInterval(count);
 tick = 0;
 
 $('#reload-nc').click();
 $('.timer').text(tick + ' c.');
 
 count = setInterval(function(){
 tick++;
 $('.timer').text(tick + ' c.')
 }, 1000);
 
 interval = setInterval(function(){
 $('#reload-nc').click();
 }, this.value * 1000);
});


Скрипт, который после обновления выбирает нужный пункт:
jQuery(document).ready(function(){
  var selectedVal = jQuery.cookie("selected-val");
  if (selectedVal) {
    jQuery("#select").val(selectedVal);
  }
  jQuery("#select").on("change", function(){
    var selection = jQuery(this).val();
    jQuery.cookie("selected-val", selection, {expires: 365, path: '/'})
  });
});


Основная проблема в том, что он просто выбирается, но не активируется на сколько я понимаю, так как обновление так и не происходит, функция даже не запускается. Как можно это решение упростить, а так же, чтобы оно работало верно?
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
y0u
@y0u Куратор тега JavaScript
dev
По идее как-то так:
$(document).ready(function(){
    var interval,
        count,
        tick,
        selectedVal = $.cookie("selected-val");

    function refresh() {
        clearInterval(interval);
        clearInterval(count);
        tick = 0;

        $('#reload-nc').click();
        $('.timer').text(tick + ' c.');

        count = setInterval(function(){
            tick++;
            $('.timer').text(tick + ' c.')
        }, 1000);

        interval = setInterval(function(){
            $('#reload-nc').click();
        }, $('#select').val() * 1000);
    }

    if (selectedVal) {
        $("#select").val(selectedVal);
        refresh();
    }

    $("#select").on("change", function(){
        var selection = $(this).val();
        $.cookie("selected-val", selection, {expires: 365, path: '/'})
        refresh();
    });
});
А как упростить - это вы уже сами подумайте.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы