0

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ため、引き続き表示されます。次に、本文の任意の場所をクリックして、リンクをもう一度移動します。今はmouseupfalsedowntrue

この問題の回避策はありますか?

私が理解しているように、これはデフォルトのブラウザの<a>ドラッグ動作によるものです。

4

1 に答える 1

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

</ p>

于 2012-12-16T08:39:13.930 に答える