JS实现下拉框中当鼠标离开下拉菜单时立即隐藏菜单

  • 文档创建者:yiyemeiying
  • 编辑次数:11次
  • 最近更新:Kevin-s 于 2019-12-09
  • 1. 概述

    1.1 问题描述

    在填报数据的时候,通过下拉框选择数据,用户希望当在点击下拉框弹出选项面板后,放弃当前单元格编辑,鼠标离开下拉面板时,自动隐藏掉下拉面板,能让旁边的单元格不被遮挡。系统默认是必须点击其它地方,才能隐藏面板!

    222


    1.2 实现思路

    通过给按钮设置初始化 JS 事件来实现当鼠标离开下拉面板时,自动隐藏掉下拉面板。


    2. 示例

    2.1 操作步骤

    设置好模板,选中按钮添加“初始化后事件”,如下图所示:

    image.png

    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 预览效果

    保存模板,选择填报预览,实现效果下图所示:

     222


    注:此 JS 不支持移动端使用


    3. 模板下载

    模板效果在线查看请点击:JS 实现下拉框中当鼠标离开下拉菜单时立即隐藏菜单.cpt

    已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\28-JS实现下拉框中当鼠标离开下拉菜单时立即隐藏菜单.cpt

    点击下载模板:28-JS实现下拉框中当鼠标离开下拉菜单时立即隐藏菜单.cpt


    附件列表


    主题: 二次开发
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!