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

时间:2014-02-07 16:55:41

标签: dojo

我试图弄清楚如何根据已发布的事件关闭弹出对话框..即当一个人将鼠标移动到页面的另一部分时。(我只想在我移动到此部分时关闭它)这是可能的

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

 _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
              });   

1 个答案:

答案 0 :(得分:1)

你可能在想它。 dojo/topic模块有一个subscribe方法,它接受一个主题名称(“messageRollOver / close”)和一个在发布消息时触发的函数。

topic.subscribe('messageRollOver/close',function(args){
  console.log('close tooltip');
});

您可以将任意参数传递给发布消息,然后将其传递给subscribe:

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

当调用subscribe函数时,arg1将成为主题#publishing function call的第二个参数。