Блин, спасибо огромное за скрипт. Завтра буду весь день переваривать ваш код.
Теперь по месту его применения. Вот что я делаю: есть страница на которой два блока. Один блок со списком товаров, второй блок - скрытый, в нем будут отображаться характеристики выбранного из списка товара. Нажимаю на строку списка, этот блок скрывается, отправляется 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, время: 00:19. |