1. 概述
1.1 问题描述在填报数据的时候,通过下拉框选择数据,用户希望当在点击下拉框弹出选项面板后,放弃当前单元格编辑,鼠标离开下拉面板时,自动隐藏掉下拉面板,能让旁边的单元格不被遮挡。系统默认是必须点击其它地方,才能隐藏面板!
1.2 实现思路通过给按钮设置初始化 JS 事件来实现当鼠标离开下拉面板时,自动隐藏掉下拉面板。
2. 示例
2.1 操作步骤设置好模板,选中按钮添加“初始化后事件”,如下图所示: JS 代码如下: - var self = this;
- window.tryCollapse = function() {
- if (window.needCollapse) {
- if (self.isExpanded()) {
- self.collapse();
- }
- window.needCollapse = false;
- }
- }
- $('.view-container').children().bind('mouseout', function(e) {
- window.needCollapse = true;
- setTimeout(function() {
- window.tryCollapse();
- }, 100);
- });
- var btn = $('.fr-trigger-btn-up', this.element);
- var view = this.$view;
- btn.bind('click', function() {
- if (!self.isExpanded()) {
- return;
- }
- setTimeout(function() {
- $('.fr-combo-list-item', view).bind('mouseover', function() {
- window.needCollapse = false;
- }); //mouseout(鼠标移开)时,隐藏当前下拉框待选部分
- }, 100);
- });
复制代码 2.2 预览效果保存模板,选择填报预览,实现效果下图所示:
注:此 JS 不支持移动端使用
3. 模板下载模板效果在线查看请点击:JS 实现下拉框中当鼠标离开下拉菜单时立即隐藏菜单.cpt 已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\28-JS实现下拉框中当鼠标离开下拉菜单时立即隐藏菜单.cpt 点击下载模板:28-JS实现下拉框中当鼠标离开下拉菜单时立即隐藏菜单.cpt
|