2012-12-05 42 views
0

這是我遇到的問題。我需要附加一些可拖動div的句柄。如何將右鍵單擊事件附加到可拖動的div上

我需要做的是捕捉鼠標右鍵,每次我右鍵單擊div內的父母。

這是我的孩子創建代碼。此代碼工作正常,我可以創建多個div沒有問題。

var smallBlock = $('<div class="SmallBlock"></div>').appendTo("#canvas"); 
smallBlock..draggable({containment: "#canvas", scroll: false, grid: [10, 10]}, {cursor: "move", cursorAt: {top: 125, left: 150}}) 
smallBlock.append('<div class="article_title fontCenter fontBold font32">Article Title</div>') 
smallBlock.append('<div class="article_Image"><img style="width: 250px;" src="<? echo $image1 ?>"></div>') 
smallBlock.append('<div class="font14"><? echo substr($article_text, 0, 200) ?></div>') 

這是鼠標單擊代碼。

<script type="text/javascript"> 

function getRightClick() 
{ 
    // check for right mouse pressed 

$('#canvas').mousedown(function(event) { 
    switch (event.which) { 
     case 1: 
      alert('Left mouse button pressed'); 
      break; 
     case 2: 
      alert('Middle mouse button pressed'); 
      break; 
     case 3: 
      alert('Right mouse button pressed'); 
      break; 
     default: 
      alert('You have a strange mouse'); 
    } 
}); 
} 

</script> 

我不知道如何讓div來識別右擊鼠標。

順便說一下,還有其他類的父母內部,我需要檢測;所以更普遍的解決方案可能會更好。

+0

看到http://stackoverflow.com/questions/15672684/can-we-make-jquery-ui-draggables-sortables-to-work-on-right-mouse-button –

回答

0

,你可以將其添加到上下文ID元素:

oncontextmenu="alert('right click on element');return false; 

或者是這樣的:

jQuery('#yourDIVId').mousedown(function(event) { 
    var rightclk = false; 
    if (event.which) rightclick = (event.which == 3); 
    if(rightclk == true){ 
     alert('yes') 
    } 
}); 
+0

謝謝,我會在晚餐後嘗試這個:) – Chris

1

試試這個:

$("#canvas").bind("contextmenu", function(e) { 
    alert('Right mouse clicked'); 
}); 
+0

我應該在哪裏放置這些代碼?我曾嘗試過以及canvas div內,但沒有出現。我是否需要創建一個實際的上下文菜單? – Chris

+0

我也喜歡阿隆。更簡潔。 –

+0

將它放在腳本標記的頭部並將其包裝在文檔中準備好,所以它會這樣:'(script type =「text/javascript」> $(document).ready(function(){ // here here以前的javascript代碼 });' –

0

像這樣的東西可以幫助:

<head> 
<script src="http://code.jquery.com/jquery-2.0.2.min.js"></script> 
<script> 
    $('#page').ready(function() { 
     $('#page').bind('contextmenu', function(event) { 
      alert($(event.target).attr('id')); 
      /*you can replace the alert with any function that you want to bind with right click 
      */ 
     }); 
    }); 
</script> 

<body> 
    <div id='page'> 
     <div id="divParent">click parent 
      <div id="divChild">click child</div> 
     </div> 
    </div> 
</body> 
</body> 

enter link description here

相關問題