页面中怎么用javascript(jquery)组织某个元素的单击事件与拖拽事件(用 mousedown,mousemove,mouseup模拟),希望有好的方式能够区分这两个事件,拖动过程中怎么去掉节点文本的选中,提高操作体验。B人是刚踏进js工作的文盲苦力工,想整个可以拖动和单击显示信息的树节点(treeview.js插件)。等好心人帮忙啊~~~OTL

解决方案 »

  1.   

    drag=mouse down +(mouse move>0次)+mouse upclick=mouse down +(mouse move*0次)+moude up
      

  2.   


    可以考虑用setTimeout记录数据按下去的时间
    如果鼠标按下去较长,如>200毫秒就认为是拖拽
    否则就是单击
      

  3.   


    $(obj).bind("mousedown",function(e){
        //dragstart
        $(obj).bind("mousemove", function(e){
            // dragover
        });
    });
    $(obj).bind("mouseup", function(e){
        if(e.target == target){
            // drop
        }
        $(obj).unbind("mousemove");
    });
    )
      

  4.   

    我是在mouseup的时候比较两个节点ID,用mousemove>0会有拖拽到原位的问题
      

  5.   

    我把mouseup也放到mousedown里注册了,不过取消相应事件很重要