Варианты решения в порядке «чистоты»:
1) переработать код так, чтобы повторные биндинги не происходили
2) вызывать .off. Если есть вероятность, что на одном элементе есть разные обработчики одного типа эвентов, то посмотреть в сторону 
api.jquery.com/event.namespace
3) Проверять, есть ли уже нужный нам биндинг. Такой способ, например:
jQuery._data($(SELECTOR)[0], 'events').EVENT_TYPE вернет массив забиндиных эвентов выбранного типа. если его длинна >= 1, то снова биндить не нужно. Опять же, namespaces, как и во втором варианте
Пример
var isBound($element, event) {
    var events = jQuery._data($element[0], 'events').event;
    if (events && events.length) {
        return true;
    } else {
        return false;    
    }
}
if (!isBound($('#button'))) {
    $('#button').on('click', function);
}