你拖动的话必须先单击过去,这个比较麻烦。我一般两种解决方法
1,你可以在拖动事件里做个判断,比如只有选中的才能拖动,而选中的不会再触发单击事件
2,你可以右键拖动,左键单击这样区别开来
mousedown+mousemove拖动
mousedown+mouseup 是单击,
可以共存啊... 托不拖动是在mousemove里面实现的不用管那么多吧?
如果还是不行那就取消浏览器的传递(冒泡)机制,js去触发事件;加个标识,mouseup的时候否去判断谁触发的;
我是这么解决的.用一个变量来存贮鼠标按钮状态:
var mouseButtonDown=false;
function mousePress()
{
mouseButtonDown=true;
}
function mouseUp()
{
mouseButtonDown=false;
}
function mouseMove()
{
if(!mouseButtonDown)
{
return;
}
//do someThing....
}
以这样的方法我实现了 网页上图片放大镜效果,网页上模拟滚动条拖动... 完全木问题,响应速度也很快
@coder_wang: 好吧!最近项目也要树形菜单,还要支持拖动。主要是节点还要展开和折叠,所以需要一个状态判定是点击还是拖拽。