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

时间:2012-05-24 16:31:54

标签: dojo contextmenu onmouseout

我正在创建一个动态上下文菜单,因为我希望菜单在鼠标离开菜单框时关闭。我用过:

var dlg = new dijit.Menu({                   
         onMouseLeave: function(event){
        dijit.popup.close(dlg);
    }
});

但是当我走出盒子时,没有任何事情发生。如果我在MenuItems中放入相同的功能,那么当我离开MenuItem框时,它会关闭框。

有任何评论吗?

1 个答案:

答案 0 :(得分:2)

这是因为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);
});