//if list container is table, the browser automatically wraps rows in tbody if not specified so change list container to tbody so that children returns rows as user expected
//record current position so on dragend we know if the dragged item changed position or not, not using getItems to allow dragsort to restore dragged item to original location in relation to fixed items
varparent=this.draggedItem.offsetParent().not("body").offset();//offsetParent returns body even when it's static, if not static offset is only factoring margin
//if list container is table, the browser automatically wraps rows in tbody if not specified so change list container to tbody so that children returns rows as user expected
//record current position so on dragend we know if the dragged item changed position or not, not using getItems to allow dragsort to restore dragged item to original location in relation to fixed items
varparent=this.draggedItem.offsetParent().not("body").offset();//offsetParent returns body even when it's static, if not static offset is only factoring margin