Мой пример - прототип спортивной фэнтезийной страницы, пользователи выбирают игроков из списка и, выбирая их, перемещают их в другой список. У каждого игрока есть цена, и у каждого пользователя есть предел зарплаты. Моя проблема в том, что я пытался реализовать это так, чтобы, если пользователь попытался выбрать игрока, на которого у него не было денег, ему сообщило бы предупреждение. Но моя проблема в том, что предупреждение появляется несколько раз, так что я нажимаю все в порядке, и оно возвращается. Количество раз, когда оно появляется, также кажется случайным, не имеет значения, как я нажимаю кнопку.
Сначала я подумал, что, возможно, я нажимал кнопку много раз, но это не так. При исследовании проблемы на этой странице все упоминали о добавлении дополнительных прослушивателей событий, но я не думаю, что это проблема с моим кодом. Я поместил код ниже и попытался удалить несвязанный код для удобства чтения. js проверяет, за каким столом находится игрок (выбранный пользователем или нет), проверяет, есть ли у него зарплата, и перемещает игрока (я удалил код, идущий в другую сторону, потому что он был неактуален). значение - это переменная, которая является текущим значением выбранной команды, а статистика - это словарь, где ключ - это имя игрока, связанное со списком, где первый индекс - это цена.
Мое лучшее предположение, что, возможно, кнопка застревает в нижнем положении, но это не имеет смысла?
JS:
function myFunction() {
if ($(this).closest('tbody').attr('id')=='Right') {
let name = $(this).closest("tr").find("td:first").text();
if((value+stats[name][0]>11000)){
alert('You do not have the salary for that')
}else{
$(this).closest("tr").remove();
$('#lefttable').append('<tr><td>'+name+'</td><td><button onclick="myFunction()" class="btn btn-danger">-</button></td></tr>');
selected_team.push(name)
value+=stats[name][0]
$("#teamPrice").text(value);
}
}
};
HTML:
<tbody id="Right">
{%for player in players%}
{%if player not in team%}
<tr>
<td>{{player}}</td>
<td>
<button class="btn btn-danger" onclick="myFunction()">-</button>
</td>
</tr>
{%endif%}
{%endfor%}
</tbody>