Dojo 上下文菜单未触发onMouseOut onMouseLeave事件

Dojo 上下文菜单未触发onMouseOut onMouseLeave事件,dojo,contextmenu,onmouseout,Dojo,Contextmenu,Onmouseout,我正在创建一个动态上下文菜单,正如预期的那样,我希望在鼠标离开菜单框时关闭该菜单。我使用了: var dlg = new dijit.Menu({ onMouseLeave: function(event){ dijit.popup.close(dlg); } }); 但当我走出箱子时,什么也没发生。如果我将相同的函数放在MenuItems中,那么当我离开MenuItem框时,它会关闭该框 有什么评论吗?这可能是因

我正在创建一个动态上下文菜单,正如预期的那样,我希望在鼠标离开菜单框时关闭该菜单。我使用了:

var dlg = new dijit.Menu({                   
         onMouseLeave: function(event){
        dijit.popup.close(dlg);
    }
});
但当我走出箱子时,什么也没发生。如果我将相同的函数放在MenuItems中,那么当我离开MenuItem框时,它会关闭该框


有什么评论吗?

这可能是因为dijit.Menu没有在其domNode上注册onMouseLeave

要手动执行此操作,您只需要以下内容:虽然还没有对测试进行采样,但应该可以正常工作

var myconnects = []
var dlg = new dijit.Menu({                   
   destroy: function() {  // for a neat garbage collections, remove listeners
      var ch;
      while(ch = myconnects.pop()) ch.disconnect();
      this.inherited();
   }
   ...
});
myconnects.push(dojo.connect(dlg.domNode, "onmouseleave", dojo.hitch(dlg, function() {
    dijit.popup.close(this);
});

很高兴为您服务: