jquery - 无法为动态创建的元素调用函数

时间:2018-01-17 13:44:13

标签: javascript jquery ajax pagination

我有一个分页ajax函数显示如下:

$.fn.ajaxPagination = function() {

    return this.unbind('click').on('click', function(e) {

        e.preventDefault();
        //alert();return;

        if (!$(this).parent().hasClass('disabled')) {

            var href = $(this).attr('href');
            var wrapper = $(this).closest('.content-wrapper');

            wrapper.addClass('loader-bg');


            $.post(href + '&ajax=1', function(response) {

                wrapper.removeClass('loader-bg');
                wrapper.html(response);
                sig.init();

                return false;
            });

        } else {
            return false;
        }
    });
};

我使用代码调用它:

$('.pagination > li > a').ajaxPagination();

有时会从ajax的结果中显示锚链接。因此它们成为动态创建的元素。由于动态创建了这些锚标记,我无法调用此函数。如果是点击或任何其他事件,我知道如何解决这个案例。但这是函数的调用。如何解决这个问题?欢迎任何想法。 :)

1 个答案:

答案 0 :(得分:1)

我建议你使用事件委托。见https://learn.jquery.com/events/event-delegation/ 您应该绑定包含所有动态创建的锚点的父元素,匹配选择器,并且您不必费心将click事件添加到动态创建的元素。