Google Earth Engine(GEE)——“不听”unlisten()实现面板的“隐身”

举报
此星光明 发表于 2022/04/16 03:00:42 2022/04/16
【摘要】 该unlisten()方法提供了删除在小部件上注册的回调函数的能力。这有助于防止触发只应发生一次或在某些情况下发生的事件。onClick() 或的返回值onChange()是一个 ID,可以传递给unlisten()它以使小部件停止调用该函数。要取消注册所有事件或特定类型unlisten()的事件,请分别调用不带参数或事件类型...

unlisten()方法提供了删除在小部件上注册的回调函数的能力。这有助于防止触发只应发生一次或在某些情况下发生的事件。onClick() 或的返回值onChange()是一个 ID,可以传递给unlisten()它以使小部件停止调用该函数。要取消注册所有事件或特定类型unlisten()的事件,请分别调用不带参数或事件类型(例如 'click''change')参数。以下示例演示unlisten()如何方便打开和关闭面板:

函数:

unlisten(idOrType)

删除回调。

 

Deletes callbacks.

Arguments:

this:ui.widget (ui.Widget):

The ui.Widget instance.

idOrType (String, optional):

在回调注册期间由 onEventType() 函数返回的 ID、事件类型或什么都没有。如果传递了 ID,则删除相应的回调。如果传递了事件类型,则删除该类型的所有回调。如果没有传递任何内容,则删除所有回调。
 

Either an ID returned by an onEventType() function during callback registration, an event type, or nothing. If an ID is passed, the corresponding callback is deleted. If an event type is passed, all callbacks for that type are deleted. If nothing is passed, all callbacks are deleted.

代码:


  
  1. //创建一个面板,最初是隐藏的。
  2. var panel = ui.Panel({
  3. style: {
  4. width: '400px',
  5. shown: false//这里显示是false
  6. },
  7. widgets: [
  8. ui.Label('Click on the map to collapse the settings panel.')
  9. ]
  10. });
  11. // 创建一个按钮以取消隐藏面板。
  12. var button = ui.Button({
  13. label: 'Open settings',
  14. onClick: function() {
  15. // 隐藏按钮。
  16. button.style().set('shown', false);
  17. // 显示面板。
  18. panel.style().set('shown', true);
  19. // 暂时使地图单击隐藏面板并显示按钮。
  20. var listenerId = Map.onClick(function() {
  21. panel.style().set('shown', false);
  22. button.style().set('shown', true);
  23. // 面板隐藏后,地图不应尝试通过监听点击来关闭它。
  24. Map.unlisten(listenerId);
  25. });
  26. }
  27. });
  28. // 将按钮添加到地图并将面板添加到根。
  29. Map.add(button);
  30. ui.root.insert(0, panel);

最后结果:

首先展现出来的是两个按钮

 当点击第一个按钮时:

 点击第二个按钮:

 当点击地图的时候这两个按钮会同时再出现,面板则会消失。

文章来源: blog.csdn.net,作者:此星光明2021年博客之星云计算Top3,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_31988139/article/details/119781096

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200