2009-02-26 9 views
3

私は左クリックしたか右クリックしたかにかかわらず、要素に対して別の動作を起こさせたいWebアプリケーションを開発中です。Firefoxでの左クリックと右クリックの処理方法

私はまず、clickイベントをjQueryで処理する関数を追加し、次に、2番目の関数を追加して、my要素のoncontextmenu属性を処理しました。

これはクローム& IEでうまく働くが、Firefoxで問題が発生している:私は右の要素をクリックすると、左クリックを扱う私の機能は、驚くべきことに呼び出され、右クリックを扱う、その後私の関数でありますと呼ばれる。

右クリックするとFirefoxが左クリック機能を呼び出さないようにするにはどうすればよいですか?

答えて

6

ブラウザは伝統的にonclickハンドラにevent.whichプロパティを1ではなく3に設定しています。IEはoncontextmenuを代わりに使用し、Firefoxは通常のonclickに加えてoncontextmenuを選択しました。ブラウザに対応するには、両方のイベントを捕まえる必要があります。または、あなたのために行うプラグインを見つける必要があります。

この並べ替えを行っても、右クリックイベントを取得することや、標準コンテキストメニューを無効にすることはできません。多くのWebページは能力を濫用しているため、多くのブラウザでは動作しません。また、デフォルトでは無効になることもあります(Operaなど)。あなたのアプリが右クリックのアクションを提供する場合は、いつもそれらを起動する別の方法があることを確認してください。

1

私の問題は、一方では、clickの機能ともう1つのoncontextmenu属性の素晴らしい機能のjQuery liveを使用していたという事実から来ました。 (onclickoncontextmenuを使用しても問題ありません)。

$.live("click"...)の機能を変更しましたが、e.which3の場合は、イベントをキャッチして残りのイベントを実行しないようにしました。

問題が解決しました。

関連する問題