Ошибка: ReferenceError: flushJSON is not defined

194
07 апреля 2022, 20:10

Почему возникает эта ошибка?

$(document).ready(function(){
    $data = $('#motor_flush_data');
    $.getJSON('https://www.amag.ru/motor_flush/selector.json', function(data){
      flushJSON = data;
      var items = [];
      items = getObj(data,0);
      $('<div/>', {
        'class': 'my-new-list',
        html: items
      }).prependTo($data);
    });
    $('.flush_select_box', $data).hide();

});
function next(obj){
    var dataKey = obj.getAttribute('data-key');
    var openId = getOpenID(dataKey);
    openId = openId.concat(0,'FN','HG');
    openId.reverse();

    $('.flush_select_box').hide();
    for(var i=0; i<openId.length; i++){
        $('#box-'+openId[i]).fadeIn();
    }
    var level = $(obj).parent().parent().data('level');
    if (level)
    {
        $('.flush_select_box[data-level='+(level+1)+'] .ans').removeClass("active");
    }

    $(obj).addClass("active")
            .siblings().removeClass("active");
    $(".flush_select_box .motor_is_ok").removeClass("motor_is_ok");

    $('#box-'+dataKey).fadeIn();
    if ($(window).width() <= 767)
        $("html, body").animate({scrollTop: $('#box-'+dataKey).offset().top - $(".header-top").height()});
    $(".flush_result_title").hide();
    $('#motor_flush_result').html('');
    $.each(flushJSON[dataKey]["a"], function(key, val){
        if(key === 'Hi-Gear') {
            $(".flush_result_title").show();
            if (!$("#motor_flush_result .loader").length)
                $("#motor_flush_result").append('<div class="loader"><div></div></div>');
            $.ajax("/motor_flush/ajax.php", {
                type: "POST",
                data:{"article": val},
                success:function(data){
                    $("#motor_flush_result .loader").remove()
                    $('#motor_flush_result .higear').remove();
                    $('#motor_flush_result').html($('#motor_flush_result').html() + '<div class="flush_result_block higear"><h2>абаОаДбаКбб аЛаИаНаЕаЙаКаИ Hi-Gear</h2>' + data + "</div>");

                    if ($(window).width() > 767)
                    {
                        if ($("#motor_flush_modal").length)
                            $("#motor_flush_modal #motor_flush_div").stop().animate({scrollTop: $("#motor_flush_modal #motor_flush_div").scrollTop() + $(obj).parent().parent().position().top});
                        else
                            $("html, body").stop().animate({scrollTop: $(obj).parent().parent().offset().top - $(".header-top").height()});
                    }
                }
            })
        } else if(key === 'FENOM') {
            $(".flush_result_title").show();
            if (!$("#motor_flush_result .loader").length)
                $("#motor_flush_result").append('<div class="loader"><div></div></div>');
            $.ajax("/motor_flush/ajax.php", {
                type: "POST",
                data:{"article": val},
                success:function(data){
                    $('#motor_flush_result .fenom').remove();
                    $("#motor_flush_result .loader").remove()
                    $('#motor_flush_result').html($('#motor_flush_result').html() + '<div class="flush_result_block fenom"><h2>абаОаДбаКбб аЛаИаНаЕаЙаКаИ FENOM</h2>' + data + "</div>");
                    if ($(window).width() > 767)
                    {
                        if ($("#motor_flush_modal").length)
                            $("#motor_flush_modal #motor_flush_div").stop().animate({scrollTop: $("#motor_flush_modal #motor_flush_div").scrollTop() + $(obj).parent().parent().position().top});
                        else
                            $("html, body").stop().animate({scrollTop: $(obj).parent().parent().offset().top - $(".header-top").height()});
                    }
                }
            })
        }
    })
}

Ошибка в этой строке:

$.each(flushJSON[dataKey]["a"], function(key, val){ 

с ошибкой:

ReferenceError: flushJSON is not defined

Answer 1

flushJSON не объявлена, либо ей ещё не присвоено значение (undefined).

Учитывайте порядок вызова функций. На момент вызова next() данные от сервера ещё могут быть не получены, а могут быть получены и == undefined. В любом случае, перед использованием flushJSON проверьте, есть ли в ней то что вам нужно и существует ли переменная.

READ ALSO
Проблема повторной установки MySQL на Ubuntu

Проблема повторной установки MySQL на Ubuntu

После полного удаления MySQL при попытке его установки происходит следующая ошибка Способ описанный здесь не помог

121
Паттерн Singleton на Java

Паттерн Singleton на Java

Была дана задача:

161
Как разделить коллекцию на несколько других коллекций?

Как разделить коллекцию на несколько других коллекций?

Допустим, у меня 5 полок для книгТак же имеется коллекция (Collection<String>) с названиями книг

164
Intellij idea не работает. Не знаю в чем проблема

Intellij idea не работает. Не знаю в чем проблема

Я создал проект и после его сохранения и загрузки он перестал видеть директории и в том числе класс "main"

208