我试图弄清楚如何根据已发布的事件关闭弹出对话框..即当一个人将鼠标移动到页面的另一部分时。(我只想在我移动到此部分时关闭它)这是可能的
当用户离开此区域时,我发布了一个主题。
_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
});
答案 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的第二个参数。