Upload: отображение таблицы аттачей

Главные вкладки

Аватар пользователя ravnur ravnur 4 марта 2009 в 2:22

проводим следующие манипуляции:
- создаем новый материал
- аттачим в нему любой файл
- Не сохраняем
- ищем таблицу аттачей в DOM и... находим ее Smile
- открываем исходник страницы и... Не находим исходники этой таблицы

как это можно объяснить (следствие AJAX)? получается нельзя работать c этой таблицей, используя jquery (попробуйте отловить нажание на какой-нибудь элемент - ничего не получится). но вот как только мы сохраним материал, откроем его для редактирования - все работает "на ура". я хочу отловить нажатие на кнопку "удалить", к примеру.

какие будут мысли?

Комментарии

Аватар пользователя zhylik zhylik 4 марта 2009 в 15:14

исходников этой таблицы быть не должно. браузеры не отображают изменения в исходном коде страницы, которые произошли после ее загрузки, тобишь табличка, которая добавилась в дом по нажатию alt+f3 не отобразится.

надо взять файрфокс с плагином firebug. выбираете файл, аттачите его и на вкладочке HTML этого плагина вам покажут актуальный исходник.

Табличка появляеся с id="upload-attachments".

А вот после сохранения такая табличка генерится уже на сервере и поэтому видна в исходнике.

Как отловить клик. Вижу след. вариант:
При инициализации jquery надо забиндить клик по всему диву с формой аттача.

  $(document).ready(function () {
    $('#attach-wrapper').click(function (e) {
      alert (e.target.nodeName);
    });
  });

e.target будет содержать ссылку на элемент дом, расположенный внутри дива "#attach-wrapper", по которому был произведен клик.
Внутри ф-ии клик-обработчика надо сделать проверку на id или еще что. Если элемент по которому был произведен клик является тем, чем надо (появившейся кнопкой, к примеру), то на него можете повесить свой обработчик, а с '#attach-wrapper' снять кликовый обработчик, который мы навесили при инициализации.

Замечу, что производительность ф-ии проверки на правильность-неправильность элемента e.tagret достаточно критична.