Блин, спасибо огромное за скрипт. Завтра буду весь день переваривать ваш код.
Теперь по месту его применения. Вот что я делаю: есть страница на которой два блока. Один блок со списком товаров, второй блок - скрытый, в нем будут отображаться характеристики выбранного из списка товара. Нажимаю на строку списка, этот блок скрывается, отправляется ajax запрос к бд, получаю данные о товаре и вывожу их во втором блоке. Во втором блоке также формируется и отображается форма выбора файлов для загрузки фото товара. Обращаю внимание: весь код второго блока формируется в js. Вот только при таком раскладе форма не работает как надо. Я подозреваю что скрипт обработки этой формы находится не на своем месте. edit_items.js- файл со скриптами. Вот его структура: jQuery(document).ready(function ($){ .... тут ajax скрипт отправки формы в обработчик ... }); ..... // Далее пошли разные функции ... // функция отображения характеристик товара // формирую второй блок полностью function open_item(iditem) { Вот тут снова формирую новый код html, в нем эта форма } .... то есть форма формируется за пределами jQuery(document).ready(function ($) Может из-за этого она не работать? |
Цитата:
По тому что показано трудно сказать почему не работает, даже что именно не работает и это не известно. |
Как я понял при инициализации страницы на некую форму навешивается обработчик.
После неких манипуляций html формы изменяется (пост 1) и после этого все перестает работать. Вы делегировать обработку события не пробовали? При изменении html кода обработчики события с замененных элементов удаляются. |
<div id="form"> <button type="submit" id="button">CLick me</button> </div> <div id="form2"> <button type="submit" id="button2">CLick me</button> </div> <script> var _get=function(id){ return document.getElementById(id); }; _get('button').onclick=function(){ alert('First button'); _get('form').innerHTML=_get('form').innerHTML; _get('button').innerHTML='Click more'; }; _get('form2').onclick=function(e){ if(e.target.tagName.toLowerCase()!='button') return; alert('Second button'); _get('form2').innerHTML=_get('form2').innerHTML; _get('button2').innerHTML='Click more'; }; </script> |
Часовой пояс GMT +3, время: 15:32. |