[JavaScript] jQuery实现右键菜单代码 →→→→→进入此内容的聊天室

来自 , 2020-09-01, 写在 JavaScript, 查看 103 次.
URL http://www.code666.cn/view/1e669a61
  1. (function(menu) {
  2.     jQuery.fn.contextmenu = function(options) {
  3.         var defaults = {
  4.             offsetX : 2,        //鼠标在X轴偏移量
  5.             offsetY : 2,        //鼠标在Y轴偏移量
  6.             items   : [],       //菜单项
  7.             action  : $.noop()  //自由菜单项回到事件
  8.         };
  9.         var opt = menu.extend(true, defaults, options);
  10.         function create(e) {
  11.             var m = menu('<ul class="simple-contextmenu"></ul>').appendTo(document.body);
  12.            
  13.             menu.each(opt.items, function(i, item) {
  14.                 if (item) {
  15.                     if(item.type == "split"){
  16.                         menu("<div class='m-split'></div>").appendTo(m);
  17.                         return;
  18.                     }
  19.                     var row   = menu('<li><a href="javascript:void(0)"><span></span></a></li>').appendTo(m);
  20.                     item.icon ? menu('<img src="' + item.icon + '">').insertBefore(row.find('span')) : '';
  21.                     item.text ? row.find('span').text(item.text) : '';
  22.                    
  23.                     if (item.action) {
  24.                         row.find('a').click(function() {
  25.                             item.action(e.target);
  26.                         });
  27.                     }
  28.                 }
  29.             });
  30.             return m;
  31.         }
  32.        
  33.         this.live('contextmenu', function(e) {
  34.             var m = create(e).show("fast");
  35.             var left = e.pageX + opt.offsetX, top = e.pageY + opt.offsetY, p = {
  36.                 wh : menu(window).height(),
  37.                 ww : menu(window).width(),
  38.                 mh : m.height(),
  39.                 mw : m.width()
  40.             }
  41.             top = (top + p.mh) >= p.wh ? (top -= p.mh) : top;
  42.             //当菜单超出窗口边界时处理
  43.             left = (left + p.mw) >= p.ww ? (left -= p.mw) : left;
  44.             m.css({
  45.                 zIndex : 10000,
  46.                 left : left,
  47.                 top : top
  48.             });
  49.             $(document.body).live('contextmenu click', function() {
  50.                 m.hide("fast",function(){
  51.                     m.remove();
  52.                 });        
  53.             });
  54.            
  55.             return false;
  56.         });
  57.         return this;
  58.     }
  59. })(jQuery);
  60. //javascript/5671

回复 "jQuery实现右键菜单代码"

这儿你可以回复上面这条便签

captcha