2009-09-20 25 views
18

我成功地禁用了我正在使用jQuery的頁面上的右鍵單擊事件。我想創建一個自定義右鍵單擊菜單。我怎樣才能做到這一點?這是否需要相關的CSS設置才能使其工作(即「位置」)?如何編寫自己的右鍵單擊菜單並禁用默認使用jquery/javascript

+0

我建議你不要這樣做,除非你給用戶關閉它的選項 - 它令人討厭,並打破了「網絡」做事的方式。例如,如果用戶想要從您的網站上保存圖片,他們將無法輕鬆完成(他們仍然可以這樣做,只需穿過籃球)。 – Chii 2009-09-20 03:29:10

+7

因爲我將它用於Intranet上的組的應用程序,所以沒有問題。 – kratz 2009-09-21 20:23:45

回答

3

這個例子的作品,雖然它是俗氣。您可以在您的contextmenu處理程序中執行的操作是在屏幕上的特定位置顯示您所選項目的DIV。據我所知,沒有辦法自定義右鍵單擊元素時出現的上下文菜單中的項目。

<html> 
    <head> 
    <title>Context menu test</title> 
    <style type="text/css"> 
     .element { 
     background-color: blue; 
     height: 300px; 
     width: 300px; 
     } 

     .popup { 
     background-color: red; 
     border: 1px solid black; 
     width: 100px; 
     height: 100px; 
     position: absolute; 
     } 
    </style> 
    <script type="text/javascript" src="jquery.js"></script> 
    <script type="text/javascript"> 
     $(function() { 
      $(".element").contextmenu 
      (
      function(e) { 
       $("div.popup").remove(); 
       $("<div class='popup'>Hi</div>").appendTo("body") 
       .css("left", e.pageX) 
       .css("top", e.pageY) 
       .show(); 
       e.preventDefault(); // return false; also works 
      } 
     ); 
     } 
    ); 

     $.fn.contextmenu = function(func) { 
     return this.bind("contextmenu", func); 
     } 
    </script> 
    </head> 
    <body> 
    <div class="element"></div> 
    </body> 
</html> 
相關問題