The .detach() method is the same as .remove(), except that .detach() keeps all jQuery data associated with the removed elements. This method is useful when removed elements are to be reinserted into the DOM at a later time.
detach - такой же как
remove, за исключением того, что
detach сохраняет все данные ассоциированные с удаляемыми элементами. Этот метод может быть использован, что бы повторно вставить удалённые элементы в "ДОМ" позже.
Насколько это понял я, и насколько это видно из примера, по ссылке которую Вы же привели - при удалении и повторной вставке этих элементов обратно - JQuery сохраняет все свойства элемента, включая сожержимое, атрибуты (в т.ч. текущие классы) и т.д. Так же, у этих элементов, судя по всему - сохраняются привязанные к ним события.
P.S. Если Вы просто удалите элемент, а потом вставите новый - то вставится именно новый элемент, события к нему придётся прикрутить заново, заново задать атрибуты/классы и т.д., с
detach - элемент "вернётся" в том виде, в котором был удалён, т.е. по сути, вернётся именно тот элемент, который был. При удалении/вставке - будет вставлен уже новый элемент.
P.P.S. Т.е. это почти то же самое что скрыть элемент [hide()/show() в JQuery или diplay: block/none в CSS], что бы потом его показать, только физически, в DOM-дереве этот больше не присутствует.