Есть код:
var glObj;
var DATA = {
cardCounter: 0,
cardContainer: document.querySelector('#airforms')
};
function ajaxGet(){
jQuery.ajax({
type: 'POST',
url: '/wp-content/themes/airball/get.php',
dataType: 'json',
beforeSend: function(data) {
//form.find('input[type="submit"]').attr('disabled', 'disabled');
},
success: function(data){
glObj = data;
createCard(data);
}
});
}
function createCard(objDo){
создается карточка, использую полученные данные из ajax
}
document.addEventListener('DOMContentLoaded', function() {
ajaxGet(); // как только страница загрузилась получаем данные и создаем карточку
document.querySelector('#btnplus').onclick = function(){
createCard(glObj);
// если кто-то заходел сделать копию карточки, то она создается по клику на кнопку. Успешно работает!
}
document.addEventListener("change", function(event) {
if(event.target.matches("select[id^='calc_stor_']")) {
// изменения внутри карточки.
var idfull = event.target.id;
id = idfull.replace("calc_stor_", "");
var select = document.querySelector('#'+idfull);
var stor;
for (var i = 0; i < select.options.length; i++) {
var option = select.options[i];
if(option.selected) {
stor = option.value;
}
document.querySelector('#heresum_'+id).innerHTML = document.querySelector('#calc_tirag_'+id).innerHTML * objDo.stors[stor].as_price; // объект не видно.
}
}
});
});
по onchange происходят изменения. но внутри не видно объект, а по нажатию на кнопку видно. в чем трабл?
Суть в том, чтобы не запрашивать постоянно изменения из ajax нужно их получить 1 раз и все.