javascript怎么处理单击事件与拖动事件并存

qq378332287 2010-12-14 11:11:23

页面中怎么用javascript(jquery)组织某个元素的单击事件与拖拽事件(用 mousedown,mousemove,mouseup模拟),希望有好的方式能够区分这两个事件,拖动过程中怎么去掉节点文本的选中,提高操作体验。B人是刚踏进js工作的文盲苦力工,想整个可以拖动和单击显示信息的树节点(treeview.js插件)。等好心人帮忙啊~~~OTL
...全文
276 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq378332287 2010-12-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 getserved 的回复:]

JScript code

$(obj).bind("mousedown",function(e){
//dragstart
$(obj).bind("mousemove", function(e){
// dragover
});
});
$(obj).bind("mouseup", function(e){
if(e.target == ta……
[/Quote]
我把mouseup也放到mousedown里注册了,不过取消相应事件很重要
qq378332287 2010-12-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ibm_hoojo 的回复:]

引用楼主 qq378332287 的回复:
页面中怎么用javascript(jquery)组织某个元素的单击事件与拖拽事件(用 mousedown,mousemove,mouseup模拟),希望有好的方式能够区分这两个事件,拖动过程中怎么去掉节点文本的选中,提高操作体验。B人是刚踏进js工作的文盲苦力工,想整个可以拖动和单击显示信息的树节点(treeview.js插件)。等好心人帮忙啊~~~……
[/Quote]
这我也考虑过,现在放到右键菜单里,添加拖拽的,看以后有想法再改吧,不过拖动过程中防止文本选中的方法还没找到
qq378332287 2010-12-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kk3k2005 的回复:]

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

click=mouse down +(mouse move*0次)+moude up
[/Quote]
我是在mouseup的时候比较两个节点ID,用mousemove>0会有拖拽到原位的问题
getserved 2010-12-14
  • 打赏
  • 举报
回复

$(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");
});
)
hoojo 2010-12-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 qq378332287 的回复:]
页面中怎么用javascript(jquery)组织某个元素的单击事件与拖拽事件(用 mousedown,mousemove,mouseup模拟),希望有好的方式能够区分这两个事件,拖动过程中怎么去掉节点文本的选中,提高操作体验。B人是刚踏进js工作的文盲苦力工,想整个可以拖动和单击显示信息的树节点(treeview.js插件)。等好心人帮忙啊~~~OTL
[/Quote]

可以考虑用setTimeout记录数据按下去的时间
如果鼠标按下去较长,如>200毫秒就认为是拖拽
否则就是单击
KK3K2005 2010-12-14
  • 打赏
  • 举报
回复
drag=mouse down +(mouse move>0次)+mouse up

click=mouse down +(mouse move*0次)+moude up

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧