jqTree is a jQuery tree widget plugin which features drag and drop with collapsable & sortable nodes.
The tree is initialised with data in json format and the plugin has many options to let you customise how data in the tree is manipulated. There are also callbacks that are fired for events such as clicking a node, right-clicking a node and moving a node.
The state of a tree can be preserved with cookies and this requires the cookie plugin. There is also a function for saving the updated tree as json data.