Problem
My guess was right.
The below code...
$('#ddlConvention').empty();
$.each(data.obj.lstConvention, function (i, obj) {
var option = '<option value = "' + obj.ConventionId + '">' + obj.ConventionName + '</option>';
$('#ddlConvention').append(option);
$('#ddlConvention option:first').attr("selected", true).change();
});
appends options and then finally selects the first option and fires the change event with the help of below code.
$('#ddlConvention option:first').attr("selected", true).change();
So, clearly it will follow a loop as you are firing the change event inside this function.
So correct your code accordingly.