Удаление содержимого массива javascript

Я знаю, что об этом спрашивали миллион раз, но все, что я нашел в Интернете, не работает для меня, так что, возможно, это не так. Я пытаюсь заполнить массив подкатегорий, динамически основанный на текущей категории, а затем использовать этот массив в качестве источника для редактируемого с помощью x редактирования. Проблема в том, что каждый раз, когда я меняю категорию, массив подкатегорий обновляется новыми категориями, но старые подкатегории все еще остаются там. Я попытался установить свойство длины до 0 до ajax, но без радости.

var subcategories = [];

    $('body').on('hover', '.subcategory_editable', function(){

        $.ajax({
            type:"post",
            dataType: "json",
            data: "category="+$(this).attr('category_id'),
            url:"ajax_php/account_page/get_all_subcategories.php",
            success:function(data){
                $.each(data, function(k, v ) {
                        subcategories[v.id] = v.subcategory
                });
            }
         });
    });

    $(document).ajaxComplete(function() {
        $(".subcategory_editable").editable({
            inputclass:'not_select',
            value:'',
            source:subcategories
        });
    });

2 ответа

Решение

Просто сбросить subcategories каждый раз, когда AJAX завершает:

success:function(data){
    subcategories = [];
    $.each(data, function(k, v ) {
        subcategories[v.id] = v.subcategory
    });
}
 var subcategories = [];

    $('body').on('hover', '.subcategory_editable', function(){

        $.ajax({
            type:"post",
            dataType: "json",
            data: "category="+$(this).attr('category_id'),
            url:"ajax_php/account_page/get_all_subcategories.php",
            success:function(data){
                subcategories = []
                $.each(data, function(k, v ) {
                        subcategories[v.id] = v.subcategory
                });
            }
         });
    });

    $(document).ajaxComplete(function() {
        $(".subcategory_editable").editable({
            inputclass:'not_select',
            value:'',
            source:subcategories
        });
    });
Другие вопросы по тегам