jQuery.liveをfirefoxで使うときの注意点

夢で医者にギブスくらい自分ではずせよと言われました。agoです。

昨日若手IT勉強会に参加させていただき、jQuery.live周辺とjsdeferredを読んできました。

そのとき気づいたのですが、Firefoxはdocument objectに対するclick eventが右クリック(event.button === 2)時にも呼ばれてしまうようです。(Firefox ver 3.5.5で確認) (Fxの方はデモコードの「ここをクリック!」を右クリックしていただければ確認できると思います)

本家にはすでに報告されているようなのでいずれ修正されると思いますが、jQuery ver 1.3.2以下で$().liveを使用する場合以下のようにコード側で対応することをお奨めします。

$('selector').live('click', function (env) {
    if (env.button !== 0) return;
    // event handler... 
});

カヤックでは夢を語れる技術者を募集しています!


2009/12/01 本文中に書かれているevent.buttonの比較値が間違っていたので修正しました。