zoukankan      html  css  js  c++  java
  • Extjs 右键菜单创建问题

    最近用ext js 创建一个右键菜单效果,我在xtype=pannel上面测试成功

        Ext.onReady(function () {
            var pan = Ext.create('Ext.window.Window', {
                 800,
                title: '我的面板',
                renderTo: Ext.getBody(),
                items: [{ xtype: 'image',
                    id: 'img_01',
                    src: 'http://www.j01.cc/Content/images/xihongshi.jpg',
                    listeners: {
                        afterrender: function (cmp, eOpts) {
                            /*右键菜单*/
                            var MyImg = Ext.getDom("img_01");
                            //Mozilla系列中需要使用 addEventListener
                            if (MyImg.addEventListener) {
                                // MyImg.addEventListener("contextmenu", CreateMenu, false);
                                MyImg.oncontextmenu = function (e) {
                                    return CreateMenu(e);
                                }
                            } else {
                                //if(MyImg.attachEvent) 
                                MyImg.attachEvent("oncontextmenu", CreateMenu)
                            }
                            function CreateMenu(e) {
                                var x = e.clientX - 5;
                                var y = e.clientY - 5;
                                if (this.menu) {
                                    this.menu.destroy();
                                };
                                this.menu = Ext.create('Ext.menu.Menu', {
                                     100,
                                    margin: '0 0 10 0',
                                    floating: false,
                                    renderTo: Ext.getBody(),
                                    listeners: {
                                        hide: function () {
                                        },
                                        mouseleave: function (menu, e, eOpts) {
                                            menu.destroy();
                                        }
                                    },
                                    items: [{
                                        text: '修改图片',
                                        handler: function () {
                                            alert("修改图片");
                                        }
                                    }, {
                                        text: '预览图片',
                                        handler: function () {
                                            Ext.create('Ext.window.Window', {
                                                title: '预览图片',
                                                layout: 'fit',
                                                x: x,
                                                y: y,
                                                 MyImg.width,
                                                height: MyImg.height,
                                                modal: true,
                                                items: [{
                                                    xtype: 'image',
                                                    src: MyImg.src,
                                                    border: false
                                                }]
                                            }).show();
                                        }
                                    }]
                                });
                                this.menu.showAt(x, y);
    
                                return false;
                            }
                        }
                    }
                }]
            }).show();
        });

    都能在panel上面看到效果。但是如果是在window上面创建menu却被压在了window的后面显示。

    解决办法

    floating:false改成floating:true就可以了跟以前一样用了

     

    this.menu = Ext.create('Ext.menu.Menu', {
                                     100,
                                    margin: '0 0 10 0',
                                    floating:true,
                                    renderTo: Ext.getBody(),

     

    如果这篇文章对您有帮助,您可以打赏我

    技术交流QQ群:15129679

  • 相关阅读:
    java操作redis之jedis篇
    实现指定步长循环后移字符串数组算法
    【PAT Advanced Level】1006. Sign In and Sign Out (25)
    银行计算利息
    中国人、美国人、北京人
    网络子系统55_ip协议分片重组_加入ipq
    C#拦截系统消息的方法-Application.AddMessageFilter
    C#实现在Form上截取消息的两种方法
    Geek改变世界
    中国黑客传说:游走在黑暗中的精灵
  • 原文地址:https://www.cnblogs.com/yeminglong/p/2799133.html
Copyright © 2011-2022 走看看