Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вывод формы на AJAX

INFERNUS Мудрец (11682), на голосовании 4 года назад
Здравствуйте есть JS код который отправляет данные из формы в php файл а тот обрабатывает и показывает его + новую форму. Это новая форма, которая выводится скриптом не работает почему то, как сделать что бы он работал? (Скрин кода)

Голосование за лучший ответ
Константин Ефименко Гуру (3718) 4 года назад
"Это новая форма, которая выводится скриптом не работает почему то.."

Вы единожды, прикрепили свой обработчик событий клика, по готовности документа. Очевидно, что создав новый экземпляр DOM элемента, вы нечего к нему не прикрепили. Вот и не работает.

Добавьте этот небольшой плагин в ваш код:

(function($)
{
$.fn.domNodeChanged = function(cb, e)
{
var e = e || {subtree:true, childList:true, characterData:true};
$(this).each(function()
{
var callback = function(changes)
{
cb.call(node, changes, this);
}
var node = this;
(new MutationObserver(callback)).observe(node, e);
});
};
})(jQuery);

Теперь, когда мы можем отслеживать удаление и добавление элементов, вы сможете исправить свою ошибку:

$(document).domNodeChanged(function(e)
{
if (e[0].addedNodes.length > 0)
{
console.log('added');
} else if (e[0].removedNodes.length > 0)
{
console.log('removed');
}
});

Здесь небольшой пример, как ещё его можно использовать:

https://jsfiddle.net/msLt24p5/

P.S.: Когда загрузится, нажмите кнопку Run, почему то проекты в jsfiddle, в последнее время перестали работать сразу.
Похожие вопросы