Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2010
2,164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * jQuery.contextMenu - Show a custom context when right clicking something
  3.  * Jonas Arnklint, http://github.com/arnklint/jquery-contextMenu
  4.  * Released into the public domain
  5.  * Date: Oct 7, 2010
  6.  * @author Jonas Arnklint
  7.  * @version 1.1
  8.  *  
  9.  */
  10. jQuery.fn.contextMenu = function ( name, actions ) {
  11.     $(document).bind("contextmenu",function(e){ return false; }); // yuk :)
  12.    
  13.     var menu = $('<ul id="'+name+'" class="context-menu"></ul>').hide().appendTo('body'),
  14.         active_element = null, // last clicked element that responds with contextMenu
  15.         hide_menu = function(){
  16.             $('.context-menu').hide()
  17.         };
  18.    
  19.     $(".context-menu").delegate("a", "click", function(e){
  20.         e.preventDefault();
  21.     });
  22.  
  23.     $.each(actions, function(me, item_options){
  24.         $('<li class="'+item_options.class+'"><a href="#">'+me+'</a></li>')
  25.             .appendTo(menu)
  26.             .bind('click', function(e){
  27.                 item_options.click(active_element);
  28.             });
  29.     });
  30.  
  31.     $('body').click(function() {
  32.          hide_menu(); //Hide the menus if visible
  33.     });
  34.  
  35.     return $(this).live('mousedown', function(e){
  36.         if( e.which == 3 ){
  37.             active_element = $(this); // set clicked element
  38.             hide_menu();
  39.             menu.show()
  40.                 .css({
  41.                     position: 'absolute',
  42.                     top: e.pageY,
  43.                     left: e.pageX,
  44.                     zIndex: 1000
  45.                 });
  46.             e.preventDefault();
  47.         }
  48.     });
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement