Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jQuery. Работа с динамически создаваемым списком. 
V
    Опции темы
nule
Дата 26.12.2011, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 3.11.2011

Репутация: нет
Всего: нет



Приветствую!
Использую вот такой парсер rss-лент, на базе плагина jFeed. Он формирует список элементов ленты <ul>.
Код

jQuery(function() {
    jQuery.getFeed({
      url: 'xml/rss.xml',
        success: function(feed) {

            jQuery('ul.paging').append('<h2>'
            + '<a href="'
            + feed.link
            + '">'
            + feed.title
            + '</a>'
            + '</h2>');
            
            var html = '';        
            for(var i = 0; i < feed.items.length && i < 15; i++) {
            
                var item = feed.items[i];

                    html += '<li>'+'<h3>'
                + '<a href="'
                + item.link
                + '">'
                + item.title
                + '</a>'
                + '</h3>';
                
                html += '<div class="updated">'
                + item.updated
                + '</div>';
                
                html += '<div>'
                + item.description
                + '</div>'+'</li>';
                }

            $("ul.paging").append(html);
        }
    })
});

А в body заготовка под него
Код

<ul class="paging"></ul>

Лента парсится и отображается, но обратиться к элементам <li> списка для дальнейшей работы не получается.
Код
$(document).ready(function() {    
var li=$('li').html();
alert(li);
});

выдает null.
Подскажите, пожалуйста, что не так.
Спасибо!

PM MAIL   Вверх
$дмитрий
Дата 26.12.2011, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 2
Всего: 45



Через firebug смотри какая у тебя реальная структура

Цитата

jQuery('ul.paging').append('<h2>'

Вижу ошибку. Нельзя в ul добавлять ничего кроме li
PM MAIL   Вверх
nule
Дата 26.12.2011, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 3.11.2011

Репутация: нет
Всего: нет



Вырезал h2. В firebug смотрел, список формируется правильно.
Код

<ul class="paging">
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
</ul>


PM MAIL   Вверх
$дмитрий
Дата 26.12.2011, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 2
Всего: 45



Т.е. проблема осталась? Дай ссылку на сайт
PM MAIL   Вверх
nule
Дата 27.12.2011, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 3.11.2011

Репутация: нет
Всего: нет



Да, осталась. Сайта нет, могу приаттачить тестовый html и плагин


Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  testfeed.rar 14,08 Kb
PM MAIL   Вверх
nule
Дата 27.12.2011, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 3.11.2011

Репутация: нет
Всего: нет



Видимо, обращение к элементам происходит раньше их создания. Не знаю, как решить эту проблему :(
PM MAIL   Вверх
nule
Дата 27.12.2011, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 3.11.2011

Репутация: нет
Всего: нет



Поставил перед обращением к элементам списка задержку setTimeout. Теперь работает. Но хотелось бы приступить к обработке сразу же по окончанию формирования списка. Как отловить это событие?
PM MAIL   Вверх
нуп
Дата 27.12.2011, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 8
Всего: 33



Код

jQuery(function() {
    jQuery.getFeed({
      url: 'xml/rss.xml',
        success: function(feed) {
            jQuery('ul.paging').append('<h2>'
            + '<a href="'
            + feed.link
            + '">'
            + feed.title
            + '</a>'
            + '</h2>');
            
            var html = '';        
            for(var i = 0; i < feed.items.length && i < 15; i++) {
            
                var item = feed.items[i];
                    html += '<li>'+'<h3>'
                + '<a href="'
                + item.link
                + '">'
                + item.title
                + '</a>'
                + '</h3>';
                
                html += '<div class="updated">'
                + item.updated
                + '</div>';
                
                html += '<div>'
                + item.description
                + '</div>'+'</li>';
                }
            $("ul.paging").append(html);
           rssReady();
        }
    });

   function rssReady() {
   var li=$('li').html()
    alert(li)
}
});

PM MAIL   Вверх
nule
Дата 27.12.2011, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 3.11.2011

Репутация: нет
Всего: нет



Спасибо!  Работает.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0579 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.