//Полифилл closest:
if (window.Element && !Element.prototype.closest) {
Element.prototype.closest =
function(s) {
var matches = (this.document || this.ownerDocument).querySelectorAll(s),
i,
el = this;
do {
i = matches.length;
while (--i >= 0 && matches.item(i) !== el) {};
} while ((i < 0) && (el = el.parentElement));
return el;
};
}
function handlerForNative (e) {
//Если входящий DOM - не элемент, а текст.
if(!e.target.closest) return;
//Если принадлежит нужному контейнеру.
if(e.target.closest('.postsArea')) {
//Проверив нужды - имеем доступ к новому посту.
var newPostElement = e.target;
//И делаем с ним что угодно.
//newPostElement.addEventListener
} //Иначе - игнорируем.
}
//Для jQuery не требуется полифилл.
function handlerForJquery (e) {
if(!e.target.closest) return;
if($(e.target).closest('.postsArea').length) {
var newPostElement = $(e.target);
//newPostElement.on
}
}
//Native:
document.addEventListener('DOMNodeInserted', handlerForNative);
//jQuery:
$(document).on('DOMNodeInserted', handlerForJquery);
$.post('/youURL', $('form').serialize(), function (response) {
//Code 200.
})
$('form#id').serialize()
if(!empty($_POST['name']) && !empty($_POST['other'])) {
$filename = 'GuestData.txt';
$somecontent = $_POST['name']."\r\n";
if (is_writable($filename)) {
if (!$handle = fopen($filename, 'a')) {
//die();
}
if (fwrite($handle, $somecontent) === false) {
//die();
}
fclose($handle);
//return some
}
}