Javascript:窗口,文档,拖动时body<a>鼠标向上侦听问题



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;
});​
将链接

拖到正文中的任意位置并松开,然后再次将光标移到链接上。鼠标移动仍将显示down true,因为mouseup未触发,也没有将其更改为false。然后只需单击正文中的任何位置并再次移动到链接上即可。现在down true

此问题有什么解决方法吗?

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

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!');
}
}

最新更新