загрузка документа
(() => {
})();
слушать click, keyup, change и др
document.addEventListener('click', async (event) => {
if (event.target.closest('.set-item__add')) {
if (!event.target.closest('.set-item__add')) return;
const block = event.target.closest('.set-item');
const elem = block.getAttribute('data-elem');
}
})
Подниматься выше по дереву пока не встретишь родителя
const block = event.target.closest('.set-item');
ajax
$.ajax({
url: "json/save_global_box.php",
type: "POST",
dataType: "json",
data: { 'global_box_id': global_box_id, 'title': title, "box_id": box_id },
success: function (datajson) {
$.fancybox.close();
if (!datajson.status) {
document.location.href = "?ID=" + datajson.id;
}
}
});
fetch
const form = document.querySelector(".form-dialog-content");
let url = "/ajax/forms/add_protocol_post.php";
let successUrl = "/ajax/forms/custom_success.php";
form.addEventListener('submit', function (e){
e.preventDefault();
const formData = new FormData(e.target)
formData.append('key1', 'value1');fetch(url,{
method:'post',
body:formData
})
.then((response)=>response.json())
.then((result)=>{
console.log(result);
if(result.status === 200){
setTimeout(window.location.reload(), 3000);
}else{
document.getElementById("err_form").innerHTML = result.error;
}
})
})