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