0

動的なコンテキストメニューを作成していますが、予想どおり、マウスがメニューボックスから離れたときにメニューを閉じたいと思います。利用した :

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

しかし、私が箱の外に出るとき、何も起こりません。MenuItems内に同じ関数を配置すると、MenuItemボックスを離れると、ボックスが閉じます。

任意のコメント?

4

1 に答える 1

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);
});
于 2012-05-24T17:37:50.267 に答える