Какой правильный путь для решения простейшей проблемы.
Есть такой интерфейс:
По клику на линке загружается по 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’ы для повторного использования?