- 締切済み
javascriptのイベント処理につきまして
左クリックをした時と、クリックを解除をした時 右クリックをした時と、クリックの解除をした時 クリックを解除した時は共通の処理を行います。 左クリックをした時と、右クリックをした時の処理は分けたいと思っているのですが、上手くいきません。ご教授願えますでしょうか・・・。 [ mousedownとmouseup ] この場合、クリックした瞬間にmousedownイベントが走り、クリックを上げた瞬間にmouseupイベントができます。 ただし、右クリックでも同様の処理が走ってしまいます。 [ contextmenu と onclick ] 上記を利用すると、右クリックはcontextmenu処理を行い、左クリックはonclick処理を行いますが、この2つのイベントはマウスが押されて離された瞬間にイベントが発生しますので、mouseup処理が先に処理してしまします。 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- yyr446
- ベストアンサー率65% (870/1330)
こんなんでどうでしょう <script type="text/javascript"> function Handler(event){ switch(event.type){ case 'mousedown': switch(event.button){ case 0:alert("左ボタンが押された");return; case 1:alert("右ボタンが押された");return; } return; case 'mouseup': alert('解除された'); return; } } document./*@cc_on @if (@_jscript_version > 5.8) addEventListener( @elif (@_jscript_version <= 5.8) attachEvent( 'on'+ @else@*/ addEventListener( /*@end@*/ 'mousedown',Handler,false); document./*@if (@_jscript_version > 5.8) addEventListener( @elif (@_jscript_version <= 5.8) attachEvent( 'on'+ @else@*/ addEventListener( /*@end@*/ 'mouseup',Handler,false); </script>
- think49
- ベストアンサー率59% (285/482)
MouseEvent#button でクリックされたマウスボタンを判定できます。 http://www.y-adagio.com/public/standards/tr_dom2_events/events.html#Events-MouseEvent
mousedown イベントを受ける function の引数で、左クリックか 右クリックかを判別して処理を分岐すれば良いのでは? ここので 『右クリックでは動くけど、左クリックでは動かない』 例が載ってるよ。 http://www.red.oit-net.jp/tatsuya/java/event.htm