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>
拖动行为。
答案 0 :(得分:1)
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!');
}
}