Я знаю, что его спрашивали, как миллион раз, но все, что я нашел в Интернете, не работает для меня, так что, возможно, это не так. Я пытаюсь заполнить массив подкатегорий, динамически основанный на текущей категории, а затем использовать этот массив в качестве источника для редактирования x-editable. Проблема в том, что каждый раз, когда я меняю категорию, массив подкатегорий обновляется новыми категориями, но старые подкатегории все еще остаются там. Я попытался установить свойство length до 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
});
});
Просто обновляйте 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
});
});
subcategories
как пустой массив (т.е.subcategories = []
) при каждом обратном вызове успеха. Свойство длины изменится автоматически.0
может на самом деле быть очень полезной для сохранения той же ссылки и в то же время для очистки массива