username@email.com
2023-02-28 67a0042c5f29e4bb0e0b82f6190f2bc51480b45c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
(function ($, zou) {
    "use strict";
 
    $.fn.lrcontextmenu = function (op) {
        var dfop = {
            menulist: [],
            before:false
        }
        $.extend(dfop, op || {});
        var $self = $(this);
        dfop.id = $self.attr('id');
        if (!dfop.id) {
            return false;
        }
        if (!!$self[0]._lrcontextmenu) {
            return false;
        }
        $self[0]._lrcontextmenu = { "dfop": dfop };
        $self.on('contextmenu', function (e) {
            e.preventDefault();
 
            var $self = $(this);
            var dfop = $self[0]._lrcontextmenu.dfop;
            var wrapid = dfop.id + '_contextmenu_wrap'
            var $wrap = $('#' + wrapid);
            if ($wrap.length > 0) {
                if (!!dfop.before) {
                    dfop.before(e, $wrap);
                }
                $wrap.show();
            }
            else {
                $wrap = $('<div class="z-contextmenu-wrap" id="' + wrapid + '" ><ul class="z-contextmenu-ul"></ul></div>');
                var $ul = $wrap.find('.z-contextmenu-ul');
 
                for (var i = 0, l = dfop.menulist.length; i < l; i++) {
                    var item = dfop.menulist[i];
                    var $li = $('<li data-value="' + item.id + '" ><a href="javascript:;"><span>' + item.text + '</span><a></li>');
                    $li.on('click', item.click);
                    $ul.append($li);
                }
 
                $('body').append($wrap);
                $wrap.show();
                if (!!dfop.before) {
                    dfop.before(e, $wrap);
                }
            }
 
            var clientTop = $(window).scrollTop() + e.clientY,
                 x = ($wrap.width() + e.clientX < $(window).width()) ? e.clientX : e.clientX - $wrap.width(),
                 y = ($wrap.height() + e.clientY < $(window).height()) ? clientTop : clientTop - $wrap.height();
 
            $wrap.css({ 'left': x, 'top': y });
 
        });
        $(document).on('click', function () {
            var wrapid = dfop.id + '_contextmenu_wrap'
            var $wrap = $('#' + wrapid);
            
 
            $wrap.hide();
        });
    }
 
})(jQuery, top.zou);