我注意到在Chrome中(我使用的是Chrome 35.0.1916.114 [更新:在“35.0.1916.153 m”中也会发生),Windows 7 64位),当我点击左键时,不仅会触发mouseDown事件(正如我所期望的),还会触发mouseMove。
在这个JSFiddle中,如果你在输入框中点击,你会看到每次mouseDown事件都会出现一个'D',每次mouseMove事件都会出现一个'M'。
HTML:
在这个JSFiddle中,如果你在输入框中点击,你会看到每次mouseDown事件都会出现一个'D',每次mouseMove事件都会出现一个'M'。
HTML:
<input id="txt" type="text"/>
<p>Moves</p><p id="moves">0</p>
<p>Downs</p><p id="downs">0</p>
<p id="activity">Activity</p>
JS:
$( "#txt" ).mousedown(function() {
document.getElementById("activity").innerHTML +="D";
update(false,true);
});
$( "#txt" ).mousemove(function() {
document.getElementById("activity").innerHTML +="M";
update(true,false);
});
function update(move, down)
{
var moves=document.getElementById("moves").innerHTML;
if (move)
{
moves ++;
document.getElementById("moves").innerHTML=moves;
}
var downs=document.getElementById("downs").innerHTML;
if (down)
{
downs ++;
document.getElementById("downs").innerHTML=downs;
}
var d=parseInt(downs);
var m=parseInt(moves);
if ((d+m)%25==0)
{
document.getElementById("activity").innerHTML +="<br>";
}
}
在Firefox和IE11中,一旦光标位于输入元素中,您可以连续获取'D'(即,单击会引发一个mouseDown事件)。在Chrome中,每次鼠标点击都会触发一个mouseDown和两个mouseMove事件。
这不是由于鼠标轻微晃动造成的,因为我使用的是轨迹球,所以光标完全静止。
有人知道解决方法吗?
谢谢 Dave