本帖最后由 加菲喵 于 2015-9-11 11:30 编辑
下拉框控件实现鼠标离开下拉面板时隐藏面板
1.问题描述
在填报数据的时候,通过下拉框选择数据,用户希望,当在点击下拉框弹出下拉面板后,放弃当前单元格编辑,鼠标离开下拉面板时,隐藏掉下拉面板,能让旁边的单元格不被遮挡。
目前必须点击其余地方,才能隐藏面板
2.解决办法
给需要实现这个功能的下拉框控件,添加初始化后事件,代码如下
- 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;
- });
- }, 100);
- });
复制代码 $('.view-container').children().bind('mouseout', function(e) {
window.needCollapse = true;
setTimeout(function() {
window.tryCollapse();
}, 100);
}); 这段代码为核心 mouseout(鼠标移开)时,隐藏当前下拉框待选项部分
如此,即可实现鼠标移开下拉面板时隐藏下拉面板
|