Подобные вопросы уже были на SO. К сожалению, ни один из них, кажется, не работает для меня.
У меня есть вкладка аккордеона, где может быть несколько аккордеонов в зависимости от количества устройств, которые есть у вошедшего в систему пользователя. Я храню ключ для каждого устройства в аккордеоне, который мне нужно передать в качестве параметра функции, вызывающей refre sh состояние устройства.
$(document).ready(function() {
$('.accordion').on('show.bs.collapse', function(e) {
var deviceId = $(e.target).attr('device-id');
var data = {
'host_name': $(e.target).attr('device-host-name'),
'host_key': $(e.target).attr('device-host-key')
};
updateAppsStatus(deviceId, data)
});
});
function updateAppsStatus(deviceId, data) {
var spinner = '<div class="m-3 text-center"><i class="fas fa-spinner fa-spin"></i><br>Loading...</div>';
if ($('#appsStatus-' + deviceId).is(':empty')) {
$('#appsStatus-' + deviceId).html(spinner);
$.ajax({
url: "{{ path('app_apps_status') }}",
type: "POST",
dataType: "json",
data: data
}).done(function(data) {
$('#appsStatus-' + deviceId).html(data);
})
}
setTimeout(updateAppsStatus, 5000, deviceId, data)
}