以下可以实现层移动,但如果想使鼠标只按住部分区域就能拖动,如何做呢?
比如:<div id="dialog">
       <div id="title"></div>
       ......      </div>
只按住title区域就能够实现整个层的移动,如何实现?   //div移动
    $("#dialog").mousedown(function (e) { //e鼠标事件        $(this).css("cursor", "move"); //改变鼠标指针的形状        var offset = $(this).offset(); //DIV在页面的位置
        var x = e.pageX - offset.left; //获得鼠标指针离DIV元素左边界的距离
        var y = e.pageY - offset.top; //获得鼠标指针离DIV元素上边界的距离
        $(document).bind("mousemove", function (ev)//绑定鼠标的移动事件,因为光标在DIV元素外面也要有效果,所以要用doucment的事件,而不用DIV元素的事件
        {
            $("#dialog").stop(); //加上这个之后            var _x = ev.pageX - x; //获得X轴方向移动的值
            var _y = ev.pageY - y; //获得Y轴方向移动的值            $("#dialog").animate({ left: _x + "px", top: _y + "px" }, 10);
        });    });    $(document).mouseup(function () {
        $("#dialog").css("cursor", "default");
        $(this).unbind("mousemove");
    })

解决方案 »

  1.   

    把mousedown绑定在$("title")上,再把里面的$(this)都改成$("#dialog")试试
      

  2.   

        //div移动
        $(".title").mousedown(function (e) { //e鼠标事件        $("#dialog").css("cursor", "move"); //改变鼠标指针的形状        var offset = $(this).offset(); //DIV在页面的位置
            var x = e.pageX - offset.left; //获得鼠标指针离DIV元素左边界的距离
            var y = e.pageY - offset.top; //获得鼠标指针离DIV元素上边界的距离
            $(document).bind("mousemove", function (ev)//绑定鼠标的移动事件,因为光标在DIV元素外面也要有效果,所以要用doucment的事件,而不用DIV元素的事件
            {
                $("#dialog").stop(); //加上这个之后            var _x = ev.pageX - x; //获得X轴方向移动的值
                var _y = ev.pageY - y; //获得Y轴方向移动的值            $("#dialog").animate({ left: _x + "px", top: _y + "px" }, 10);
            });    });    $(document).mouseup(function () {
            $("#dialog").css("cursor", "default");
            $("#dialog").unbind("mousemove");
        })
    这样后,鼠标就只能在title区域了
      

  3.   

    我的意思是这样//div移动
       $("#title").mousedown(function (e) { //e鼠标事件   $("#dialog").css("cursor", "move"); //改变鼠标指针的形状   var offset = $("#dialog").offset(); //DIV在页面的位置
       var x = e.pageX - offset.left; //获得鼠标指针离DIV元素左边界的距离
       var y = e.pageY - offset.top; //获得鼠标指针离DIV元素上边界的距离
       $(document).bind("mousemove", function (ev)//绑定鼠标的移动事件,因为光标在DIV元素外面也要有效果,所以要用doucment的事件,而不用DIV元素的事件
       {
       $("#dialog").stop(); //加上这个之后   var _x = ev.pageX - x; //获得X轴方向移动的值
       var _y = ev.pageY - y; //获得Y轴方向移动的值   $("#dialog").animate({ left: _x + "px", top: _y + "px" }, 10);
       });   });   $(document).mouseup(function () {
       $("#dialog").css("cursor", "default");
       $(this).unbind("mousemove");
       })试试
      

  4.   

    //div移动
       $("#title").mousedown(function (e) { //e鼠标事件   $("#dialog").css("cursor", "move"); //改变鼠标指针的形状   var offset = $("#dialog").offset(); //DIV在页面的位置
       var x = e.pageX - offset.left; //获得鼠标指针离DIV元素左边界的距离
       var y = e.pageY - offset.top; //获得鼠标指针离DIV元素上边界的距离
       $(document).bind("mousemove", function (ev)//绑定鼠标的移动事件,因为光标在DIV元素外面也要有效果,所以要用doucment的事件,而不用DIV元素的事件
       {
       $("#dialog").stop(); //加上这个之后   var _x = ev.pageX - x; //获得X轴方向移动的值
       var _y = ev.pageY - y; //获得Y轴方向移动的值   $("#dialog").animate({ left: _x + "px", top: _y + "px" }, 10);
       });   });   $(document).mouseup(function () {
       $("#dialog").css("cursor", "default");
       $(this).unbind("mousemove");
       })
      

  5.   

    谢谢,已经可行了。$("#title").mousedown(function (e) { 
    这句里面改成可点区域,其余不用改就可以实现。谢谢ParanoidKing!