Advertisement
Guest User

context-menu

a guest
Jun 28th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
jQuery 1.23 KB | None | 0 0
  1.   enable_contextmenu(editor.container, editor, [{
  2.     name: 'wrap',
  3.     callback: function() { editor.execCommand('toggleWrapMode'); }
  4.   }]); 
  5.  
  6. function enable_contextmenu(context, editor, options) {
  7.   var options_defaul = [{
  8.     name: 'reset',
  9.     callback: function() {
  10.       localStorage.removeItem(editor.container.id);
  11.       document.location.reload();
  12.     }
  13.   }];
  14.   var options = options ? options_defaul.concat(options) : options_defaul;
  15.   $('.context_menu').empty();
  16.  
  17.   var context_menu = $('<ul>').attr('class', 'context_menu');
  18.   $.each(options, function(i) {
  19.     $('<li>').attr('data-action', options[i].name).text(options[i].name).appendTo(context_menu);
  20.   });
  21.   context_menu.appendTo($('body'));
  22.  
  23.   $(context).on('contextmenu', function(e) {
  24.     $(context_menu).finish().toggle(100).css({ top: e.pageY + 'px', left: e.pageX + 'px'});
  25.     return false;
  26.   });
  27.  
  28.   $(context).bind('mousedown', function(e) {
  29.     if (!$(e.target).parents('.context_menu').length) $(context_menu).hide(100);
  30.   });
  31.  
  32.   $('.context_menu li').on('click', function() {
  33.     var list = $(this);
  34.     $.each(options, function(i) { if (options[i].name == list.attr('data-action')) options[i].callback(); });
  35.     $(context_menu).hide(100);
  36.   });
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement