Выходит, что количество добавленных элементов напрямую влияет на вызов нестандартного обработчика.
Например, если в селекте выбрать пункт 1 - DVD title, то создадутся 2 элемента, каждый из которых вызовет нестандартный обработчик.
Если выбрать Viewed, то он создаст 5 элементов и, опять же, каждый вызовет нестандартный обработчик adjustName.
До меня очень долго доходило, что trigger применяется к полученному обернутому набору. А в данном случае этот набор состоит из нескольких элементов.
Сделал вот так:
$("#addFilterButton").click(function() {
var filterItem = $("<div>").addClass("filterItem")
.appendTo("#filterPane")
.data("suffix", "." + (filterCount++));
$("div.template.filterChooser").children()
.clone()
.appendTo(filterItem);
filterItem.trigger("adjustName");
});
$("#filterPane").on("adjustName", ".filterItem", function() {
alert("yes");
var suffix = $(this).data("suffix");
if (/(\w)+\.(\d)+$/.test($(this).attr("name"))) {
return;
}
$(this).attr("name", "filter" + suffix);
});
$(document).on("change", "select.filterChooser", function() {
var filterType = $(":selected",this).attr("data-filter-type");
var filterItem = $(this).closest(".filterItem");
$(".qualifier", filterItem).remove();
$("div.template." + filterType)
.children()
.clone()
.addClass("qualifier")
.appendTo(filterItem);
filterItem.trigger("adjustName");
$("option[value='']",this).remove();
});
Вроде, получил то, что хотел.