Проблема тут полягає в тому, що "увімкнено" застосовується до всіх елементів, що існують НА ЧАС. Коли ви створюєте елемент динамічно, вам потрібно знову запустити:
$('form').on('submit',doFormStuff);
createNewForm();
// re-attach to all forms
$('form').off('submit').on('submit',doFormStuff);
Оскільки форми, як правило, мають імена або ідентифікатори, ви можете просто приєднатись до нової форми. Якщо я створюю багато динамічного матеріалу, я включу функцію налаштування або прив'язки:
function bindItems(){
$('form').off('submit').on('submit',doFormStuff);
$('button').off('click').on('click',doButtonStuff);
}
Тож тоді, коли ви щось створюєте (кнопки зазвичай у моєму випадку), я просто викликаю bindItems, щоб оновити все на сторінці.
createNewButton();
bindItems();
Мені не подобається використовувати "тіло" або елементи документа, оскільки за допомогою вкладок та модалів вони, як правило, зависають і роблять те, чого ви не очікуєте. Я завжди намагаюся бути якомога конкретнішим, якщо це не простий 1-сторінковий проект.
$(document).on('submit','form.remember',function(){...})