Javascript.RU

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

Обновление DOM после выполнения функции.
Проблема с системой "показать еще". После первого нажатия кнопка больше не срабатывает.
Код основного файла:
<div id="more-data">
Данные
<a href="javascript:;" id="more" data-limit="{$count}">Еще</a>
</div>

Код JS:
jQuery(document).ready(function($) 
{
    $('#more').click(function more() 
    {
        var limit = $('#more').attr("data-limit");
        
        $.ajax
        (
            {
                type: "POST",
                url: "test_more.php",
                data: "limit=" + limit,
                success: function (html) {
                    $('#more-data').empty();
                    $('#more-data').append(html);
                }
            }
        );
    });
});

Текст из test_more:
Данные
<a href="javascript:;" id="more" data-limit="{$count}">Еще</a>

Кнопку я постоянно подгружаю новую с новым счетчиком {$count}.
При первом вызове все работает нормально, но потом обработчик не срабатывает. Если код написать на чистом js, то все нормально:
<a href="javascript:;" onclick="more({$count})">Еще</a>
function more(count)
{
// тело функции
}

Есть подозрение, что после Ajax-запроса новая ссылка не входит в DOM. Как это можно исправить?
Ответить с цитированием
  #2 (permalink)  
Старый 11.02.2015, 18:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Игося,
клик ставят на то что не стирают через on
Ответить с цитированием
  #3 (permalink)  
Старый 11.02.2015, 18:20
Интересующийся
Отправить личное сообщение для Игося Посмотреть профиль Найти все сообщения от Игося
 
Регистрация: 13.09.2012
Сообщений: 13

рони,
Спасибо, дописал
document.getElementById('more').setAttribute('data-limit', new_limit);
Ответить с цитированием
  #4 (permalink)  
Старый 11.02.2015, 18:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Игося,

было $('#more').click(function more()
нуно
$('#more-data').on('click', '#more', function more()
Ответить с цитированием
  #5 (permalink)  
Старый 11.02.2015, 18:41
Интересующийся
Отправить личное сообщение для Игося Посмотреть профиль Найти все сообщения от Игося
 
Регистрация: 13.09.2012
Сообщений: 13

рони,
Спасибо еще раз, работает.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление страницы после получения ответа от сервера potrashitel AJAX и COMET 9 24.02.2015 10:04
обновление данных в dom skrudjmakdak Общие вопросы Javascript 4 09.11.2014 04:11
firebug автозапуск функции после перезагрузки страницы SunYang Firefox/Mozilla 0 09.09.2014 11:54
Как в браузерах реализуются функции DOM (например createElement) iamme Общие вопросы Javascript 7 02.09.2011 20:26
Условие выполнения функции TAILER Events/DOM/Window 2 28.02.2010 23:26