これはおそらく、aclick()
が両方とも 1 回だけ完了したと見なされmousedown()
、mouseup()
連続して完了したために発生します。上部の境界線の近くをクリックしてmouseup()
もトリガーされず、同じことが にも当てはまりますclick()
。
mousedown() を使用すると、毎回機能しますが、クリック全体が完了する前に発生します。
$('button').mousedown(function(e){
$('#clicks').append('<span>click </span>');
});
これを解決するには、次のようにします。
ボタンにコンテナーを追加してから、ボタンにmousedown
ハンドラーを追加し、コンテナーにハンドラーを追加しますmouseup
。両方が呼び出されたことを確認すると、ボタンのクリック イベントが実行されたことを確認できます。
そのようです:
HTML
<div id="cont"><button>Click me</button></div>
<div id="clicks">
</div>
JavaScript
var mdown = false;
$('button').mousedown(function(e){
mdown = true;
});
$('#cont').mouseup(function(e){
if (mdown)
{
$('#clicks').append('<span>click </span>');
mdown = false;
}
});