И снова проблема делегации js-переменных в виджетах

Какой правильный путь для решения простейшей проблемы.

Есть такой интерфейс:

По клику на линке загружается по ajax диалоговое окно (CJUIDialog), в нем есть кнопка CHtml::ajaxSubmitButton() с alert("GAF") и dialog("close") по success…

Моделируем ситуацию:

  • Клик на линке: Открывается диалоговое окно;

  • Клик по сабмиту: Alert message "GAF" , диалог закрывается;

Казалось бы, все нормально, но:

  • Клик на линке: Открывается диалоговое окно;

  • Нажимаем на ESC или закрытие диалогового окна * N;

  • Клик на линке: Открывается диалоговое окно;

  • Клик по сабмиту: выпрыгивает Alert message "GAF" и… еще раз выпрыгивает Alert message "GAF" и *N, диалог закрывается;

ajaxSubmitButton создается по $("#ajaxSubmitButton").on("click");

Т.е. следовательно, необходимо значит вешать отловщики этого действия при закрытии, так как при повторном открытии сабмит перезагружается и дублируется, что не есть хорошо. У меня интерфейс немного сложнее чем тот который я здесь описал, и пока что не нашел куда же тыкать этот $("#ajaxSubmitButton").off("click"); таким образом, чтобы оно нормально уничтожалось. А так как на странице не один элемент, а бывает и несколько десятков, то следить за всеми бывает сложно, поэтому смотрю и пытаюсь копать в сторону какого-то группового действия по JQuery namespace events.

А как Вы, %username%, делегируете event’ы для повторного использования?