У меня есть список категорий провайдеров и провайдеров, загруженных ajax на страницу, и я добавил флажок рядом с каждым из них.
When the ajax call is done
, я добавляю EventListener на каждый флажок, чтобы иметь дело с проверенным / непроверенным.
Я звоню get_dispos_fournisseurs when I checked/unchecked a category
, потому что мне нужно перезагрузить провайдеров.
Проблема в том, что мой javascript не всегда вызывается.Это потому, что мой ajax на самом деле не сделан или потому что он асинхронный?Если да, как я могу это исправить?
Заранее спасибо:)
xhrLoad_panneau = $.ajax({
type: "post",
url: path_to_load_panneau,
data: "contexte=" + contexte ,
success: function () {
for (var i in fournisseurs) {
$(bloc_fournisseur).append("<input id='"+fournisseurs[i][15]+"' class='progi' categorie='" + fournisseurs[i][11] +"' distance='"+ distance_text +"' provider_name='"+fournisseurs[i][2]+"' name='fournisseur' type='checkbox' />");
$(bloc_fournisseur).append("<img class='progi-img' src='/assets/progi/calendrier.png' alt='progi' />");
}).always(function(){
get_dispos_fournisseurs();
});
function get_dispos_fournisseurs(){
var myFunction = function (event) {
document.getElementById("btn-dispos").disabled = ($("input[name='fournisseur']:checked").length < 1) ? true : false;
if ($("input[name='fournisseur']:checked").length > 5) {
this.checked = false;
} else {
if (this.checked) {
ids[this.id] = [this.getAttribute('provider_name'), this.getAttribute('distance')];
} else {
delete ids[this.id];
}
}
};
var checkboxes = document.getElementsByClassName('progi');
for (i = 0; i < checkboxes.length; i++){
checkboxes[i].removeEventListener("change", myFunction, false);
checkboxes[i].addEventListener('change', myFunction, false);
}
}