【问题标题】: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);
    });
    

    【讨论】:

    • 很高兴为您服务 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多