mirror of https://github.com/layui/layui
优化 select 相关代码排版
parent
5ffc5be821
commit
38fb0813bc
|
@ -265,29 +265,33 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
||||||
|
|
||||||
// 下拉选择框
|
// 下拉选择框
|
||||||
,select: function(elem){
|
,select: function(elem){
|
||||||
var TIPS = '请选择', CLASS = 'layui-form-select', TITLE = 'layui-select-title'
|
var TIPS = '请选择';
|
||||||
,NONE = 'layui-select-none', initValue = '', thatInput
|
var CLASS = 'layui-form-select';
|
||||||
,selects = elem || elemForm.find('select')
|
var TITLE = 'layui-select-title';
|
||||||
|
var NONE = 'layui-select-none';
|
||||||
|
var initValue = '';
|
||||||
|
var thatInput;
|
||||||
|
var selects = elem || elemForm.find('select');
|
||||||
|
|
||||||
// 隐藏 select
|
// 隐藏 select
|
||||||
,hide = function(e, clear){
|
var hide = function(e, clear){
|
||||||
if(!$(e.target).parent().hasClass(TITLE) || clear){
|
if(!$(e.target).parent().hasClass(TITLE) || clear){
|
||||||
$('.'+CLASS).removeClass(CLASS+'ed ' + CLASS+'up');
|
$('.'+CLASS).removeClass(CLASS+'ed ' + CLASS+'up');
|
||||||
thatInput && initValue && thatInput.val(initValue);
|
thatInput && initValue && thatInput.val(initValue);
|
||||||
}
|
}
|
||||||
thatInput = null;
|
thatInput = null;
|
||||||
}
|
};
|
||||||
|
|
||||||
// 各种事件
|
// 各种事件
|
||||||
,events = function(reElem, disabled, isSearch){
|
var events = function(reElem, disabled, isSearch){
|
||||||
var select = $(this)
|
var select = $(this);
|
||||||
,title = reElem.find('.' + TITLE)
|
var title = reElem.find('.' + TITLE);
|
||||||
,input = title.find('input')
|
var input = title.find('input');
|
||||||
,dl = reElem.find('dl')
|
var dl = reElem.find('dl');
|
||||||
,dds = dl.children('dd')
|
var dds = dl.children('dd');
|
||||||
,dts = dl.children('dt') // select分组dt元素
|
var dts = dl.children('dt'); // select 分组dt元素
|
||||||
,index = this.selectedIndex // 当前选中的索引
|
var index = this.selectedIndex; // 当前选中的索引
|
||||||
,nearElem; // select 组件当前选中的附近元素,用于辅助快捷键功能
|
var nearElem; // select 组件当前选中的附近元素,用于辅助快捷键功能
|
||||||
|
|
||||||
if(disabled) return;
|
if(disabled) return;
|
||||||
|
|
||||||
|
@ -296,8 +300,8 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
||||||
|
|
||||||
// 展开下拉
|
// 展开下拉
|
||||||
var showDown = function(){
|
var showDown = function(){
|
||||||
var top = reElem.offset().top + reElem.outerHeight() + 5 - $win.scrollTop()
|
var top = reElem.offset().top + reElem.outerHeight() + 5 - $win.scrollTop();
|
||||||
,dlHeight = dl.outerHeight();
|
var dlHeight = dl.outerHeight();
|
||||||
|
|
||||||
index = select[0].selectedIndex; // 获取最新的 selectedIndex
|
index = select[0].selectedIndex; // 获取最新的 selectedIndex
|
||||||
reElem.addClass(CLASS+'ed');
|
reElem.addClass(CLASS+'ed');
|
||||||
|
@ -315,16 +319,18 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除 input 已有文本并放入 placeholder,方便输入
|
// 删除 input 已有文本并放入 placeholder,方便输入
|
||||||
if (input.val()) {
|
var inputValue = $.trim(input.val());
|
||||||
// 有值时才删除并替换 placeholder
|
// 有值时才删除并替换 placeholder
|
||||||
input.attr('placeholder', input.val());
|
if(inputValue){
|
||||||
|
input.attr('placeholder', inputValue);
|
||||||
input.val(''); // 清空输入框的值
|
input.val(''); // 清空输入框的值
|
||||||
}
|
}
|
||||||
|
|
||||||
followScroll();
|
followScroll();
|
||||||
}
|
};
|
||||||
|
|
||||||
// 隐藏下拉
|
// 隐藏下拉
|
||||||
,hideDown = function(choose){
|
var hideDown = function(choose){
|
||||||
reElem.removeClass(CLASS+'ed ' + CLASS+'up');
|
reElem.removeClass(CLASS+'ed ' + CLASS+'up');
|
||||||
input.blur();
|
input.blur();
|
||||||
nearElem = null;
|
nearElem = null;
|
||||||
|
@ -347,17 +353,17 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
||||||
input.val(initValue || '');
|
input.val(initValue || '');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
// 定位下拉滚动条
|
// 定位下拉滚动条
|
||||||
,followScroll = function(){
|
var followScroll = function(){
|
||||||
var thisDd = dl.children('dd.'+ THIS);
|
var thisDd = dl.children('dd.'+ THIS);
|
||||||
|
|
||||||
if(!thisDd[0]) return;
|
if(!thisDd[0]) return;
|
||||||
|
|
||||||
var posTop = thisDd.position().top
|
var posTop = thisDd.position().top;
|
||||||
,dlHeight = dl.height()
|
var dlHeight = dl.height();
|
||||||
,ddHeight = thisDd.height();
|
var ddHeight = thisDd.height();
|
||||||
|
|
||||||
// 若选中元素在滚动条不可见底部
|
// 若选中元素在滚动条不可见底部
|
||||||
if(posTop > dlHeight){
|
if(posTop > dlHeight){
|
||||||
|
|
Loading…
Reference in New Issue