I'm starting a new project that will use HTML5 and HTML5 canvas.
The project is basically an interactive 2D diagram that will show some objects in the screen, you can click the objects, make some actions over the objects, I need zoom and translate features, and also drag and drop support.
Lime.js is a nice framework for such things. It has great documentation, very straight forward codes, examples with commented functionality and (since you asked this specifically) drag and drop support. It's usually used for games but you can easily use it for something that you're after as well.
You can find everything about lime.js here: http://www.limejs.com/
As for tools, I just use Sublime Text 2 for editing and debugg using the Chrome Developer tool.