Делаю репост части статьи с харбра, к которой не раз обращался.
bind, live и delegate могли вести себя непредсказуемо при использовании вместе. Например, $(document).unbind(‘click’) убирал все live(‘click’)-события со всего документа.
Новое API событий .on() and .off() призвано как-то унифицировать систему создания обработчиков событий:
Старое API |
Новое API |
$(elems).bind(events, fn) |
$(elems).on(events, fn) |
$(elems).bind(events, { mydata: 42 }, fn) |
$(elems).on(events, { mydata: 42 }, fn) |
$(elems).unbind(events, fn) |
$(elems).off(events, fn) |
$(elems).delegate(events, selector, fn) |
$(elems).on(events, selector, fn) |
$(elems).undelegate(events, selector, fn) |
$(elems).off(events, selector, fn) |
$(selector).live(events, fn) |
$(document).on(events, selector, fn) |
$(selector).die(events, fn) |
$(document).off(events, selector, fn) |