I would suggest you to use what is called "Rx": reactive extensions, all you want you can do without it, but Rx makes your life better and easier :)
There is an Rx for .NET and Rx for Javascript, same stuff and you can have similar techniques wherever you want.
Here is a nice video how to do drag-n-drop using Rx in .NET (WPF in this example) and even if you do something else (winforms, silverlight, javascript) - watch this video anyway, it gives you the idea and the implementation is exactly the same for everything else:
http://channel9.msdn.com/blogs/j.van.gogh/writing-your-first-rx-application
And here is a javascript specific drag-n-drop using Rx described:
http://weblogs.asp.net/podwysocki/archive/2010/03/19/introduction-to-the-reactive-extensions-for-javascript-drag-and-drop.aspx