Не нужно приучаться ловить события методом регистрации обработчика в нём.
Для таких целей есть делегирование (использование 3-й фазы — всплытия)
$(document).on('click', селекторы, function (e) {
$(this) // Где регистрировали (чьи селекторы)
$(e.target) // Где реально произошло
});
Если интересно, вот небольшое обсуждение модели событий
Как удалить обработчик событий установленный с пом...
Также, если смена hash произошла при клике, а всплытие события было остановлено, есть событие
hashchange.
Ну а если кто-то балуется с History в сторонних скриптах, есть событие
popstate.