Приветствую!
Помогите разобраться со следующей задачей.
Есть список игроков, которые добавляются при помощи autocomlete. При выборе игрока он заносится в игровую таблицу. Когда игрок занесен в таблицу, он уже не выводится в списке autocomplete. Случается, что выбрали не того игрока, тогда его удаляют и вносят нового, а удаленный опять появляется в списке выбора.
У меня загвоздка с удалением игрока из списка. Скрыл различные попытки удаления.
Массив с игроками выглядит так: [14: "14", 57: "57", 59: "59"].
Мой код:
$(document).on('click', '.item-remove', function() {
var removeItem = $(this).parent().data('playerid');
/*$(cache_com).each(function(key, value) {
if (value != removeItem ) {
return key;
}
});*/
/*cache_com.splice(0, 1); */
/*$(cache_com).pull(removeItem);*/
/* cache_com = $.grep(cache_com, function(key,value) {
return key != removeItem;
return ({key: value});
});*/
/*cache_com.pop(14);*/
/*cache_com = $.grep(cache_com, function (value, key) {
return key != removeItem
});*/
});
var cache_com = [];
function createAutocomplete(els, top, left) {
els.autocomplete({
source: function(request, response) {
$.ajax({
type: "POST",
url: "/loadfields/player/",
data: request,
dataType: "json",
success: function(data) {
var input = $(els);
$('.b-staff-dropdown.nobody').hide();
if (data == null || data.length == 0) {
data = {
value: 0,
label: "Ничего не найдено",
};
$('.b-staff-dropdown.founded').hide();
$('.b-staff-dropdown.nobody').css("top", function(index) {
return index + totalTop;
});
$('.b-staff-dropdown.nobody').css("left", function(index) {
return index + totalLeft;
});
$('.b-staff-dropdown.nobody').show();
} else {
if (person.value in cache_com) {
} else {
users_arr.push('\<li class="item">\n\
<div class="image-wrapper">\n\
<div class="usericon usericon-alter" style="background-color: #C7C9FA;">Г.С.\n\
<svg class="svg-frame" x="0px" y="0px" width="36px" height="36px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">\n\
<path fill="#FFFFFF" d="M-1,-1v52h52V-1H-1z M25,49C4,49,1,44.997,1,25C1,5,4,1,25,1c20.996,0,24,4,24,24S46,49,25,49z"></path>\n\
</svg>\n\
</div>\n\
</div>\n\
<div class="info">\n\
<span data-addtype="' + $(els).data('name') + '" data-id="' + $(els).data('id') + '" data-class="' + InputDateClass + '" data-id="' + InputDateId + '" data-name="' + $(els).data('name') + '" class="name">' + person.label + '</span>\n\
<span class="post small c-color-gray">Игрок</span>\n\
<span style="display:none;" class="value">' + person.value + '</span>\n\
</div>\n\
</li>');
}
});
var totalTop = +top + 20;
var totalLeft = +left;
$('.b-staff-dropdown.founded').html(users_arr);
$('.b-staff-dropdown.founded').css("top", function(index) {
return index + totalTop;
});
$('.b-staff-dropdown.founded').css("left", function(index) {
return index + totalLeft;
});
$('.b-staff-dropdown.founded').show();
$('ul.b-staff-dropdown.founded').on('click', '.item', function() {
var playerid = $(this).find('.value').text();
var playername = $(this).find('.name').text();
cache_com[playerid] = playerid;
addPlayertoinput(input, playerid, playername);
});
}
},
});
},
minLength: 1,
select: function(event, ui) {
}
});
}