【问题标题】:onMouseOut onMouseLeave event not triggered for context Menu上下文菜单未触发 onMouseOut onMouseLeave 事件
【发布时间】:2012-05-24 16:31:53
【问题描述】:
我正在创建一个动态上下文菜单,正如预期的那样,我希望在鼠标离开菜单框时关闭菜单。我用过:
var dlg = new dijit.Menu({
onMouseLeave: function(event){
dijit.popup.close(dlg);
}
});
但是当我走出盒子时,什么也没有发生。如果我在 MenuItems 中放置相同的功能,那么当我离开 MenuItem 框时,它会关闭该框。
有什么意见吗?
【问题讨论】:
标签:
dojo
contextmenu
onmouseout
【解决方案1】:
这是因为 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);
});