ドラッグアンドドロップを可能にするプログラムの作成を行います。
はじめに、ドラッグアンドドロップさせる要素をHTMLで作成します。
ここでは、32pxの赤い正方形を使います。

<div id="block" style="background-color: red; width: 32px; height: 32px;"></div>

ここで、ドラッグアンドドロップとはどういう機能かを考えます。
では、マウスボタンを押すと移動可能な状態になる処理から作っていきます。
ある要素の上でマウスボタンが押されたとき、というイベントはmousedownです。
また、マウスが移動したときというイベントはmousemoveです。 mousemoveは要素上以外の場所でも起こる可能性があるので、$(window).mousemove(~~)とし、windowのイベントとします。
下のコードでは、mousedownが起こると、windowのmousemoveに移動処理を登録しています。

    $("#block").mousedown(function(){
        $(window).mousemove(function(){
            // 移動処理
        });
    });
次に、移動処理の実際の内容について説明していきます。
まず、mousemoveに与えている関数が、function(e){}と引数eを受け取っていることに注意してください。
この変数eはマウスポインタの座標などの情報を保持しています。 e.pageX, e.pageYにそれぞれ左端からの距離、上端からの距離が入っています。
blockのstyle属性を操作して、left, topをそれぞれe.pageX, e.pageYに設定することにより移動させています。
また、これはCSSの性質上座標を指定して配置するためには、position: absoluteとする必要があるため、そのように設定しています。
$("#block").mousedown(function(){
    $(window.document).mousemove(function(e){
        $("#block").css({
            position: "absolute",
            top: e.pageY,
            left: e.pageX
        });
    });
});



「サンプル実行」を押すと、「赤い要素上でマウスボタンを押すと要素が移動可能な状態になる」「移動可能な状態でマウスを動かすと、要素も一緒に移動する」ということができました。
最後にマウスボタンを放すと移動可能状態を終了させる処理を追加します。

先述のコードにドラッグアンドドロップのドロップのドロップ部分の処理をつけます。
マウスボタンを離すと移動が終了するようにします。
$("#block2").mousedown(function(){
    $(window.document).mousemove(function(e){
        $("#block2").css({
            position: "absolute",
            top: e.pageY,
            left: e.pageX
        });
    });
});

$(window.document).mouseup(function(){
    $(window.document).unbind("mousemove");
});