Почему 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 раза
И так до бесконечности.