私は本当にそれを理解しているかどうか、おそらく3番目のパラメータである[オプション]を完全に理解していませんが、コードにイベントリスナーの削除は、別の要素がホバリングされてもまだ起動しません
ドキュメントの作成時に、キーアップとキーダウンを処理するイベントリスナーを追加します。私はこれすべての作業をして、それは素晴らしい作品です。
window.addEventListener('keydown', keyinputhandler, false);
window.addEventListener('keyup', keyinputhandler, false);
function keyinputhandler(e) {
//doing stuff with it here
}
問題はjqueryのホバーメソッドを使用して何かを行うときに発生します。
var someotherelement = $('#someotherelement');
someotherelement.hover(function(){
window.removeEventListener('keydown', keyinputhandler, false);
window.removeEventListener('keyup', keyinputhandler, false);
//for some reason, the events in keyinputhandler keep firing here, why?
}, function() {
window.addEventListener('keydown', keyinputhandler, false);
window.addEventListener('keyup', keyinputhandler, false);
}
);
私のコードでは、私が達成しようとしていることのコメントエリアを含めました。特定の要素にカーソルを移動すると、他のイベントハンドラがトリガされることはありません。 someotherelementがホバリングされているときに、keyinputhandlerの動作を無効にするにはどうすればよいですか?
あなたの問題のフィドルなどを作成することは可能ですか?誰かが手助けするのがずっと楽になります。 – Keith
あなたのために1つを作ってください、ほんの数分です。 – simon
私はそれをテストすることができます、あなたのコードは期待どおりに動作します。あなたがkeydownのときに何らかの理由でmouseleaveイベントを発生させなかったかどうか確認してください。 –