10

http://jsfiddle.net/MrkY9/

私のコンピューター (そして、これまでのところ、同僚の他のコンピューターはありません) は、Chrome、IE、および Safari で問題を示しています (ただし、Firefox では問題が発生していません)。次のような単純なmousemoveコード (上記のフィドルで既に実行されています) はイベントを適切にキャッチしmousemoveますが、マウスが div にある限り、マウスをmousemove動かしていなくても、毎秒イベントをキャッチします。

var number = 0;
$("#foo").on("mousemove", function() { this.innerHTML = number++ });

FireFox では発生しないため、これはブラウザベースの問題のようです。(Windows 自体では発生しません。カウンターが上がっていても、キーボードとマウスを放っておくと、最終的にはスクリーン セーバーが起動します。) システムの問題ではないと結論付ける前に、マウスを交換して、接続されている USB ポート。驚くべきことではありませんが、これらのソリューションのいずれも問題を解決していません。

これをブラウザのJavaScript以外でテストする方法がわかりません。

質問: 以前にこれに遭遇した人はいますか? 捕まえるために何かしなければならないことはありますか?私は、マウスが動いている時と動いていない時を知ることに依存するこのフィドルよりもはるかに些細なコードを持っています。

4

3 に答える 3

19

わかりました、問題は見つかりましたが、なぜそれが問題なのか完全には理解できませんでした。

バックグラウンドでタスクマネージャーを実行していました。そして、何らかの理由で、それ自体が更新されるたびに、IE、Safari、および Chrome が mousemove イベントを受け取る原因となっていました。

意味がありませんが、少なくとも修正は簡単です。タスク マネージャーを閉じます。

([アプリケーション] タブにいる場合は非常に明白です。[パフォーマンス] タブにいる場合は、値が何に設定されているかによって異なります。)

于 2013-07-23T19:15:52.043 に答える
0

私はまったく同じ問題に直面しました。Pure Javascript の場合、onmousemove を onmouseover に置き換えました。jQuery では、mousemove を mouseover に置き換えました。私にとって最速の修正。

于 2014-06-13T19:10:22.190 に答える