Cycle.js如何通过点击弹出窗口的外部来关闭它
Cycle.js how to close a popup by clicking outside it
我正在使用Cycle.js框架,并创建了一个弹出/覆盖作为组件。
我已经隔离了弹出组件。消息来源。我通常用作事件源的DOM仅限于弹出式DOM。
组件是否有检测外部点击的cycle.js-way?还是应该将侦听器附加到文档?
有两种方法可以实现这一点:
-
将一个
div
元素放在隔离的数据流组件中,但通过cssposition:fixed; left:0;right:0;top:0;bottom:0;
定位它,使其跨越整个页面。然后为这个div添加监听器。它将获得页面上的所有点击事件,并且仍然在组件的隔离边界内。 -
创建一个自定义的"全局点击驱动程序",在整个文档中添加一个点击监听器,并将点击发布为可观察的:
const globalClickDriver = () => { return O.fromEventPattern( (h) => { document.addEventListener('click', h, true); }, (h) => { document.removeEventListener('click', h, true); } ); }; const drivers = { DOM: makeDOMDriver('#app-main'), globalClick: globalClickDriver, }; Cycle.run(main, drivers);
相关文章:
- 调整窗口大小时,可拖动的对象会出现在容器外部
- asp.net MVC,重定向到视图,视图打开新窗口到外部url,它'It’’’’我们被当成一种风景
- 在外部(正文)单击时关闭弹出窗口
- 为在新窗口中打开外部链接创建异常
- 在弹出窗口中打开外部页面的Javascript api
- 通过jQuery或Javascript应用于父窗口的外部css规则
- 通过程序在窗口中打开一个外部URL,链接会附加到网站上
- 当在外部而不是弹出窗口上单击时,使引导程序弹出窗口关闭
- 单击外部链接后重定向,只打开一个选项卡/窗口
- 如果在外部单击,则隐藏弹出窗口.为什么我的脚本没有'不起作用
- 在外部窗口中弹出
- jQuery-强制关闭外部链接窗口
- 窗口外部空值
- 如何使用窗口加载函数使我所有的 javascript 都外部化
- 使用颜色框在弹出窗口中加载外部网站
- 如何从外部窗口对象获取 location.href
- 使用 javascript 打开一个窗口,并从外部源加载 HTML 内容
- 谷歌地图API v3 - 通过外部单击打开信息窗口
- 如何在JS中检测外部窗口的关闭?
- 询问用户是否应该在外部窗口/选项卡中打开外部链接