首页 > 解决方案 > sap.m.MenuItem sapui5 attacheventbrowser 不起作用

问题描述

尝试使用 attachBrowserEvent 将“onmouseover”事件处理程序附加到 sap.m.MenuItem sapui5 但我得到了

Item.attachBrowserEvent 不是函数错误

这是我尝试过的代码 - 不知道我做错了什么。

            var item1 = new sap.m.MenuItem({
                text: "item1",
                press: ()=> {
                    //do somethign                    }
            });

            var item2 = new sap.m.MenuItem({
                text: "item2",
                enabled: false,
            });

            item2.attachBrowserEvent("mouseover", function(){
                const oPopover = new sap.m.Popover({
                   showHeader: false,
                   placement: sap.m.PlacementType.HorizontalPreferredRight,
                   contentWidth: "500px",
                   content: [
                    new sap.m.Text({
                        text: "item2 is deactived"
                    })
                ]
            });
            item2.attachBrowserEvent("mouseover", function() {
                oPopover.openBy(item2);
            });
            item2.attachBrowserEvent("mouseout", function() {
                oPopover.close();
            });
                                        });
            var oMenu = new sap.m.Menu({
                items: [item1,item2]

            })

标签: sapui5mouseover

解决方案


那是因为控件 sap.m.MenuItem 没有这个功能。要在 API 中查找控件的所有功能:https ://sapui5.hana.ondemand.com/1.54.8/#/api/sap.m.MenuItem

但是 sap.m.MenuItem 从 sap.ui.base.EventProvider 继承了函数“attachEvent”: https ://sapui5.hana.ondemand.com/1.54.8/#/api/sap.ui.base.EventProvider/方法/附加事件

我认为这就是你要找的。

希望这对你有帮助,埃里克


推荐阅读