Panda Noir

JavaScript の限界を究めるブログです。

jQueryでマウスイベントを使っていてはまったこと

jQueryでクリックされたときに、altKeyが押されているかどうか判定するときに、はまってしまいました。 結構時間がかかってしまったので、みなさんが私の二の舞にならないように書きます。

私が書いたのは、こんな感じのコードです。

$("#button").click(function(e){
    if(e.altKey){
        console.log("alt key pushed");
    }
});

「eがaltKeyというプロパティを持っていません」とエラーをはかれ続けていました。 なんでだろうか?とずっと疑問でした。

これ、window.eventが正しいんですよね。 ここに気がつくのに時間がかかってしまいました。

(いったい引数のeは何を渡されているのかはよくわかっていません。たぶんbutton.eventみたいに、window.なにか.eventと一つおいているためにaltKeyがないのだとおもいます)

$("#button").click(function(e){
    if(window.e.altKey){
        console.log("alt key pushed");
    }
});

これで正常にうごきます。

クリックされたときに、一緒にキーボードが押されているかの判定をするときに役立つと思います。