tetsunosukeのnotebook

tetsunosukeのメモです

[javascript] アンカーに対してのEnterでGETリクエストが飛んでしまう(Firefox)

<a href="http://example.com" class="example">test</a>

みたいなリンクを書いたとき、このリンク上でEnterされた場合には、そのhrefを無視して、別の挙動をさせたいと思い、Javascriptで制御しようとしています。

jQueryで下記のように書いてみました。

//$('.example').keypress(function(e)) {
$('.example').keypress(function(e) {
  
  if (e.which == 13) {
      e.preventDefault();
      // 何か別の処理をして終了したい
      alert("OK");
      return false;
  }
  return false;
});

IE,GoogleChromeだとこれできちんとalertを出して終了してくれるが、Firefoxの場合、alertを出したまま、次の画面へ遷移してしまう。このイベントを止める方法はないのか??


なんかよくわかんないんだけど、リンクの上でEnterすると、そのhrefがEmptyStringになってしまうようだ。それでそのhrefを取得してうんぬん、という処理ができないっぽい。明日に続く。

続くのヤメたw(2010.2.2追記)

なんかそもそもonclickイベントが発生するらしい。

というのは厳密ではなくて、jQueryのclickでイベントが走るようだ。なので、keypressではキャッチできなくなってしまっているということが判明。これ基本ですか?もしかして。