Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Обновление DOM после выполнения функции. (https://javascript.ru/forum/jquery/53626-obnovlenie-dom-posle-vypolneniya-funkcii.html)

Игося 11.02.2015 18:00

Обновление 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. Как это можно исправить?

рони 11.02.2015 18:12

Игося,
клик ставят на то что не стирают через on

Игося 11.02.2015 18:20

рони,
Спасибо, дописал
document.getElementById('more').setAttribute('data-limit', new_limit);

рони 11.02.2015 18:35

Игося,

было $('#more').click(function more()
нуно
$('#more-data').on('click', '#more', function more()

Игося 11.02.2015 18:41

рони,
Спасибо еще раз, работает.


Часовой пояс GMT +3, время: 04:25.