ブラウザのコンテキストメニューを無効にした後、右クリックしていくつかのアクションをトリガするにはどうすればよいですか?イベントをマウスの右ボタンでクリックする
私はこれを試しました。 。 。
$(document).ready(function(){
$(document).bind("contextmenu",function(e){
$('.alert').fadeToggle();
return false;
});
});
ブラウザのコンテキストメニューを無効にした後、右クリックしていくつかのアクションをトリガするにはどうすればよいですか?イベントをマウスの右ボタンでクリックする
私はこれを試しました。 。 。
$(document).ready(function(){
$(document).bind("contextmenu",function(e){
$('.alert').fadeToggle();
return false;
});
});
一切のjQueryでも、oncontextmenuイベントハンドラを内蔵していますが、このような何かを行うことができますがあります:
$(document).ready(function(){
document.oncontextmenu = function() {return false;};
$(document).mousedown(function(e){
if(e.button == 2) {
alert('Right mouse button!');
return false;
}
return true;
});
});
基本的に私は、ブラウザのコンテキストメニューを無効にするには、DOMエレメントのも、oncontextmenuイベントをキャンセルしませんjQueryを使ってmousedownイベントをキャプチャします。そこでは、どのボタンが押されたのかをイベント引数で知ることができます。
上記の例を試すことができますhere。
'$(document)[0]'は 'document'と同じではありませんか? – configurator
@ configurator、はい、それはタイプミスです。ありがとう:) – CMS
あなたの答えは間違っています:http://jsfiddle.net/Zmdzv/ – andrewrk
contextmenu
はイベントですか?
I(左= 0、1 =中央、2 =右)が押されたボタンを決定するためにMouseEvent
のボタン性をつかむその後onmousedown
又はonclick
を使用します。
関数が早すぎます。私は以下のコードにコメントを追加しました:
$(document).ready(function(){
$(document).bind("contextmenu",function(e){
return false;
$('.alert').fadeToggle(); // this line never gets called
});
});
次の行でreturn false;
を交換してみてください。
+1、バインディング 'contextmenu'がサポートされました! –
"2009年4月1日尋問 - これは重要ではないと私は考えている。 ;) –
@zourtneyあなたはそれをどう結論づけますか? jQueryのドキュメントでは、 'contextmenu'をサポートすることについて何も言及していません... – bart
イベントハンドラを使用するだけです。このような何か作業をする必要があります:
$('.js-my-element').bind('contextmenu', function(e) {
e.preventDefault();
alert('The eventhandler will make sure, that the contextmenu dosn't appear.');
});
私はここで、この答えを見つけて、私はこのようにそれを使用しています。単純に次のようにこれを行うページのすべての画像上で右クリックしてコンテキストメニューを無効にするには
$("#newmagazine").customContextMenu(function(){
alert("some code");
});
document.oncontextmenu = function() {return false;}; //disable the browser context menu
$('selector-name')[0].oncontextmenu = function(){} //set jquery element context menu
:私のページのスクリプトから
$.fn.customContextMenu = function(callBack){
$(this).each(function(){
$(this).bind("contextmenu",function(e){
e.preventDefault();
callBack();
});
});
}
コード:マイライブラリから
コード:
jQuery(document).ready(function(){
// Disable context menu on images by right clicking
for(i=0;i<document.images.length;i++) {
document.images[i].onmousedown = protect;
}
});
function protect (e) {
//alert('Right mouse button not allowed!');
this.oncontextmenu = function() {return false;};
}
.contextmenu方法: -
てみ
<div id="wrap">Right click</div>
<script>
$('#wrap').contextmenu(function() {
alert("Right click");
});
</script>
.mousedown方法を次のように - あなたは
$('#wrap').mousedown(function(event) {
if(event.which == 3){
alert('Right Mouse button pressed.');
}
});
を参照してくださいhttp://stackoverflow.com/a/2725963/287948 –
を関数が返すような何かをしようとしています! – Tom