首页 新闻 搜索 专区 学院

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

2
悬赏园豆:30 [待解决问题]

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

问题补充: 拖动过程中怎么去掉节点文本的选中
sconfield的主页 sconfield | 初学一级 | 园豆:150
提问于:2010-12-14 10:12
< >
分享
所有回答(3)
0

你拖动的话必须先单击过去,这个比较麻烦。我一般两种解决方法

1,你可以在拖动事件里做个判断,比如只有选中的才能拖动,而选中的不会再触发单击事件

2,你可以右键拖动,左键单击这样区别开来

茂茂 | 园豆:2860 (老鸟四级) | 2010-12-14 15:56
双击选中更好点
支持(0) 反对(0) 茂茂 | 园豆:2860 (老鸟四级) | 2010-12-14 16:00
我尝试过双击,不过效果不好,现在用的右键添加拖拽事件,有个问题就是不知道怎么去掉拖拽过程中选中文本的方法。
支持(0) 反对(0) sconfield | 园豆:150 (初学一级) | 2010-12-15 10:29
??怎么判断是否选中啊,感谢您的帮助啊!
支持(0) 反对(0) sconfield | 园豆:150 (初学一级) | 2010-12-15 10:30
0

mousedown+mousemove拖动

mousedown+mouseup 是单击,

可以共存啊... 托不拖动是在mousemove里面实现的不用管那么多吧?

如果还是不行那就取消浏览器的传递(冒泡)机制,js去触发事件;加个标识,mouseup的时候否去判断谁触发的;

trancedly | 园豆:266 (菜鸟二级) | 2011-11-01 14:39
3

我是这么解决的.用一个变量来存贮鼠标按钮状态:  

var mouseButtonDown=false;

function mousePress()
{
mouseButtonDown=true;
}

function mouseUp()
{
mouseButtonDown=false;
}

function mouseMove()
{
if(!mouseButtonDown)
{
return;
}
//do someThing....
}
coder_wang | 园豆:193 (初学一级) | 2011-12-19 15:19

以这样的方法我实现了 网页上图片放大镜效果,网页上模拟滚动条拖动... 完全木问题,响应速度也很快

支持(0) 反对(0) coder_wang | 园豆:193 (初学一级) | 2011-12-19 15:22

@coder_wang: 好吧!最近项目也要树形菜单,还要支持拖动。主要是节点还要展开和折叠,所以需要一个状态判定是点击还是拖拽。

支持(0) 反对(0) 快乐八哥 | 园豆:202 (菜鸟二级) | 2013-05-06 20:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册