Javascript:拖动<a></a>时窗口,文档,正文鼠标听取问题

时间:2012-12-16 08:25:57

标签: javascript

http://jsfiddle.net/TMmgt/4/

HTML:

<a href="javascript:void(0);">some text</a>​

JS:

var down=false;    

$('a').mousedown(function(){
    down=true;
});

$('a').mouseup(function(){
    down=false;
});

$('a').mousemove(function(){
    if(down){
       console.log('Mouse is still down!');
       // do something        
    }
});

$(window,document,'body').mouseup(function(){
    down=false;
});​

将链接拖动到正文中的任意位置并释放,然后再次将光标移到链接上。 鼠标移动仍会显示downtrue,因为mouseup未被触发且未将其更改为false。然后只需单击正文中的任意位置并再次移动链接。现在downtrue

此问题的解决方法是什么?

据我了解,这是因为默认浏览器<a>拖动行为。

1 个答案:

答案 0 :(得分:1)

http://jsfiddle.net/TMmgt/5/

var down=false;


$('a').mousedown(function(e){
    e.preventDefault();
    down=true;
});

$('body').mouseup(function(e){
    e.preventDefault();
    down=false;
    check();
});

$('a').mousemove(function(e){
    e.preventDefault();
    if(down){
       console.log('Mouse is still down!');
       // do something        
    }
});

function check(){
    if(down==false) {
    console.log('Mouse is up!');
}
}