Mir gelingt es nämlich nicht, einen von Beiden auf Deine Lösung zu adaptieren.
Ein Unterschied ist, dass ich die funktion direkt im Konfigurationsobjekt verwende und in diesen beiden Fällen die eine Variable verwendet wird - das ist im prinzip aber nur eine Handhabkarkeitsfrage.
Die helper-Funktion hat zwei Argumente (per default event und ui (diese ob die jetzt e und tr (wie dort) oder event und element heissen ist im endeffekt egal - das erste ist das event selbst (das interessiert uns nicht) das zweite Argument ist das Element welches sortiet wird.
Im Prinzip basieren alle darauf, dass sie zuerst das original Klonen und Hilfselement erstellen - dieser Klon ist nur eine Zeile (oder ein tbody-Element) und hat daher natürlich eine andere Zellenbreite als die anderen Elemente, da diese ja nicht alle gleich lang sind.
In einer Schleife wird werden nun alle tr-Element des Klons durchlaufen und deren Breite wird auf die Breite des Elements gesetzt, welches denselben Index besitzt wie das tr-Element im Original.
Während meine Lösung mit $('td', element) arbeitet und somit egal ob du jetzt tr oder tbody-Elemente verschiebst immer td-Elemente findet, arbeitet die andere Lösung mit childen - die Kinder eines thead-Elements sind aber tr-Elemente, die einzelnen td-Elemente werden dann völlig außer acht gelassen und natürlich in ihrer Breite nicht angepasst. Das children entspricht '>*' und ist natürlich eine völlig andere Ergebnismenge.