Способ работы live()
состоит в том, что он помещает обработчик на верхний уровень DOM (документа), который обнаруживает, когда выбранное событие всплывает до этого уровня (а затем проверяет, было ли оно выброшено элементомсоответствует вашему селектору).
delegate()
работает так же, но обработчик помещается в выбранный вами элемент (поэтому он может обнаруживать только события, выброшенные потомками этого элемента).
Недостатками live()
являются: 1) проблемы с производительностью, присущие обнаружению и проверке всех событий, относящихся к уровню документа, и 2) тот факт, что вы вообще не можете остановить распространение этих событий (поскольку вы не будете знать,о них, пока они не достигнут уровня документа).
delegate()
смягчает обе эти проблемы, позволяя ограничить обработчик меньшим набором элементов (элементов, которые соответствуют вашему селектору и их потомкам), а невся страница.