You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

74 lines
2.4 KiB

  1. /*
  2. * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn)
  3. * Copyright (c) 2013-2018 北京泉江科技有限公司
  4. * 创建人:陈彬彬
  5. * 日 期:2017.03.22
  6. * 描 述:右键菜单
  7. */
  8. (function ($, learun) {
  9. "use strict";
  10. $.fn.lrcontextmenu = function (op) {
  11. var dfop = {
  12. menulist: [],
  13. before:false
  14. }
  15. $.extend(dfop, op || {});
  16. var $self = $(this);
  17. dfop.id = $self.attr('id');
  18. if (!dfop.id) {
  19. return false;
  20. }
  21. if (!!$self[0]._lrcontextmenu) {
  22. return false;
  23. }
  24. $self[0]._lrcontextmenu = { "dfop": dfop };
  25. $self.on('contextmenu', function (e) {
  26. e.preventDefault();
  27. var $self = $(this);
  28. var dfop = $self[0]._lrcontextmenu.dfop;
  29. var wrapid = dfop.id + '_contextmenu_wrap'
  30. var $wrap = $('#' + wrapid);
  31. if ($wrap.length > 0) {
  32. if (!!dfop.before) {
  33. dfop.before(e, $wrap);
  34. }
  35. $wrap.show();
  36. }
  37. else {
  38. $wrap = $('<div class="lr-contextmenu-wrap" id="' + wrapid + '" ><ul class="lr-contextmenu-ul"></ul></div>');
  39. var $ul = $wrap.find('.lr-contextmenu-ul');
  40. for (var i = 0, l = dfop.menulist.length; i < l; i++) {
  41. var item = dfop.menulist[i];
  42. var $li = $('<li data-value="' + item.id + '" ><a href="javascript:;"><span>' + item.text + '</span><a></li>');
  43. $li.on('click', item.click);
  44. $ul.append($li);
  45. }
  46. $('body').append($wrap);
  47. $wrap.show();
  48. if (!!dfop.before) {
  49. dfop.before(e, $wrap);
  50. }
  51. }
  52. var clientTop = $(window).scrollTop() + e.clientY,
  53. x = ($wrap.width() + e.clientX < $(window).width()) ? e.clientX : e.clientX - $wrap.width(),
  54. y = ($wrap.height() + e.clientY < $(window).height()) ? clientTop : clientTop - $wrap.height();
  55. $wrap.css({ 'left': x, 'top': y });
  56. });
  57. $(document).on('click', function () {
  58. var wrapid = dfop.id + '_contextmenu_wrap'
  59. var $wrap = $('#' + wrapid);
  60. $wrap.hide();
  61. });
  62. }
  63. })(jQuery, top.learun);