Почему Ajax запускает новый обработчик функции каждый раз при success?

function getUserInfo(username) {
    if (getUserInfo_var) return false;
    $.ajax({
        url: '/url.php',
        type: 'post',
        dataType: 'json',
        data: {username:username},
        success: function(json) {
            if (typeof json.success !== 'undefined') {
                $(document).find('.innerTwo').empty();
                $(document).find('.innerTwo').html(json.success);
                compl(); // эта функция обрабатывается каждый раз по новой
            } else if (typeof json.error !== 'undefined') {
                return $.jGrowl(json.error);
            }
        },
        error: .....
    });
}

Функция compl

function compl() {
    if($(document).find('#complaint').length>0) {
        usernameTocomplaint = $(document).find('.tuName').text();
        $(document).on('click', '#complaint', function() { 
            $('#complaintForm').find('input[name="usernameTocomplaint"]').val(usernameTocomplaint);
            alert($(document).find('#complaintForm').length); // этот алерт показывается поочередно столько раз сколько раз тыкнул на выбранного пользователя
        });
    }
    if ($(document).find('#complaintBtn').length>0) {
        $(document).on('click', '#complaintBtn', function() {
            complaintFunc();
        });
    }
}

А теперь на словах - на страницы есть вывод пользователей.

Тык на пользователя->тык на кнопку "Пожаловаться"-> Алерт 1 раз

2-ой так на этого же или другого пользователя->тык на кнопку "Пожаловаться"-> Алерт 2 раза

3-ий так на этого же или другого пользователя->тык на кнопку "Пожаловаться"-> Алерт 3 раза

И так до бесконечности.


Ответы (0 шт):