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

编辑
  • 文档创建者:yiyemeiying
  • 浏览次数:2450次
  • 编辑次数:8次
  • 最近更新:ukae 于 2018-08-10
  • 1. 描述

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



    2. 思路

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

    3. 操作步骤

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

    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);
    });

    4. 预览效果

    4.1 PC端预览效果

     

    4.2 移动端预览效果

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

    5. 已完成模板

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


    附件列表


    主题: 二次开发
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]