Удаление содержимого массива 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
});
});