Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.02.2010, 08:34
sky sky вне форума
Новичок на форуме
Отправить личное сообщение для sky Посмотреть профиль Найти все сообщения от sky
 
Регистрация: 16.02.2010
Сообщений: 2

Динамические html элементы
Здравствуйте,
На странице имеется список ссылок (перечисление) чего-либо.
При клике по ссылке, необходимо отобразить несколько фотографий соотв. данной ссылке, а так же для каждого фото вывести на страницу checkbox как элемент управления (которы можно использовать для того чтобы пользователь мог выбрать нужные фотографии, например, для удаления).

Одна фотография отображается следущим набором html элементов.
<div>
    <img   class="photo" src="/img/emty.png" />

    <input class="photo-id" type="checkbox" value="" name="" />
</div>


По клику по ссылке запрашиваю на сервере данные и получаю результат в json, содержащий массив путей до соответсвующих фотографий.

А так как кол-во фотографий заранее не известно, возникает
Вопрос: Подскажите, пожалуйста как с точки зрения идиалогии разработки на JavaScript, правильно, граматно делать:

1. В конце html страницы всегда держать блок с нужными html элементами (как исходник кода), который копировать и вставлать в нужное место на странице и изменять потом атрибут src для тега img, и value для тега input. Итак столько раз сколько нужно. ?

2. Или у сервеа сразу запрашивать все нужные и заполненые html элементы и просто вставлять на страницу?

3. Кто как ещё делает?
Ответить с цитированием
  #2 (permalink)  
Старый 18.02.2010, 18:55
Интересующийся
Отправить личное сообщение для cooli0 Посмотреть профиль Найти все сообщения от cooli0
 
Регистрация: 25.01.2010
Сообщений: 20

Я бы генерировал JS на стороне сервера, в виде литеральной нотации, и вставлял бы этот кусок в HTML. Результат - когда пользователь загружает страницу, - сразу инициализировать объект с нужными путяым к фотографиям. Дабы между ссылками и фотографиями была связь - присвоить idишники ссылкам - и соответсвенно ваш сгенерированный объейт выглядел {<id1>: '<img_src1>', <id2>: '<img_src2>', ...etc... }

То есть:

<script type="text/javascript">
MYObject.init({id1: 'http://../img1.png', id2: 'http://../img2.png' });
</script>


На кажую ссылку повестиь event onclick (именно Event, а не onclick аттрибут). Общий код (очень приблизительный):

// обезопасим внешний контекст
(function() {

  var MYObject = {

    images: undefined,

    image_html: "\
         <div>\
            <img src="{img_src}">\
            <input type="checkbox">\
         </div>\
    ",

    init: function(obj) {
       this.images = obj;
       this.applyEvents();
    },

    _applyEvents: function() {
       this._setAnchorEvents();
       // ...другие евенты....
    },

    _setAnchorEvents: function() {
       // ищем нужные тэги a и ставим event onclick на функцию _showImage
    },

    _showImage: function(event) {
       // получить target элемент - ваш тэг a
       var id = targetEl.id;
       var html = this._renderImageHtml(id);
       document.getElementById('КУДА ВСТАВИТЬ КОНТЕНТ') = html;
    },
    
    _renderImageHtml: function(id) {
       return this.image_html.replace(
           "{img_src}", this.images[id]
       );
    }

  };

  // сделаем MYObject доступным из вне
  window.MYObject = MYObject;

})();

Последний раз редактировалось cooli0, 18.02.2010 в 19:00.
Ответить с цитированием
  #3 (permalink)  
Старый 07.03.2010, 11:58
sky sky вне форума
Новичок на форуме
Отправить личное сообщение для sky Посмотреть профиль Найти все сообщения от sky
 
Регистрация: 16.02.2010
Сообщений: 2

Спасибо, попробую разобраться
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление текста из html документа andikk Events/DOM/Window 12 26.07.2012 14:55
передача данных из xml в html yupa AJAX и COMET 40 30.07.2009 10:11
AJAX. Возвращение массива HTML Neil AJAX и COMET 9 12.02.2009 16:00
Неверный результат в AJAX с получением HTML Raynor AJAX и COMET 3 17.12.2008 18:38
На входе HTML получить на выходе просто текст, как? Dmitry Общие вопросы Javascript 2 25.08.2008 10:42