dojo使小部件对发布的事件作出反应

dojo使小部件对发布的事件作出反应,dojo,Dojo,我想知道如何根据发布的事件关闭弹出对话框。。i、 当一个人将鼠标移动到页面的另一部分时(我只想在移动到页面的这一部分时将其关闭),这可能吗 当用户离开此区域时,我发布了一个主题 _hoverOffArea : function() { topic.publish("messageRollOver/close"); }, 如何让弹出窗口订阅此主题并自行关闭 var tooltip = new TooltipDialog({ onMou

我想知道如何根据发布的事件关闭弹出对话框。。i、 当一个人将鼠标移动到页面的另一部分时(我只想在移动到页面的这一部分时将其关闭),这可能吗

当用户离开此区域时,我发布了一个主题

 _hoverOffArea : function() {
    topic.publish("messageRollOver/close");
   },
如何让弹出窗口订阅此主题并自行关闭

          var tooltip = new TooltipDialog({
             onMouseLeave : function() {  

                     },
             onBlur : function() {
             }
          });       

          messageTooltip.set("content", rollOver.domNode);

              popup.open({
                popup: tooltip,
                around: e
              });   

你可能想得太多了。
dojo/topic
模块有一个
subscribe
方法,该方法采用主题名称(“messageRollOver/close”)和一个在消息发布时触发的函数

topic.subscribe('messageRollOver/close',function(args){
  console.log('close tooltip');
});
您可以向发布消息传递任意参数,然后将这些参数传递给订阅:

topic.subscribe("messageRollOver/close",function(arg1){
  console.log("arg1 = ",arg1);
});
var tooltip = new TooltipDialog(/*params*/);
topic.publish("messageRollOver/close",tooltip);

调用subscribe函数时,arg1将是主题#publish函数调用的第二个参数。

我知道我可以订阅主题,但如何获取工具提示以订阅主题?。。。也许我遗漏了一些明显的东西,但我无法找到答案……我更新了答案,提供了有关如何传递参数的信息。