mirror of https://github.com/layui/layui
chore: Merge branch 'main' of github.com:layui/layui
parent
45d6357c20
commit
bec3306dd9
|
@ -50,6 +50,20 @@
|
||||||
|
|
||||||
`true`
|
`true`
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>moreText</td>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
设置「加载更多」按钮的文本
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td>string</td>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<code style="font-size: 13px;">加载更多</code>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -77,7 +77,11 @@ layui.use(function(){
|
||||||
|
|
||||||
// 原生 select 事件
|
// 原生 select 事件
|
||||||
var tableViewElem = this.elem.next();
|
var tableViewElem = this.elem.next();
|
||||||
tableViewElem.find('.select-demo-primary').on('change', function(){
|
|
||||||
|
// 解除 tbSelect 命名空间下的所有 change 事件处理程序
|
||||||
|
tableViewElem.off("change.tbSelect");
|
||||||
|
// 将 '.select-demo-primary' 元素的 change 事件委托给 tableViewElem, 事件命名空间为 tbSelect
|
||||||
|
tableViewElem.on("change.tbSelect", ".select-demo-primary", function () {
|
||||||
var value = this.value; // 获取选中项 value
|
var value = this.value; // 获取选中项 value
|
||||||
var data = table.getRowData(options.id, this); // 获取当前行数据(如 id 等字段,以作为数据修改的索引)
|
var data = table.getRowData(options.id, this); // 获取当前行数据(如 id 等字段,以作为数据修改的索引)
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ layui.define('jquery', function(exports){
|
||||||
var scrollElem = $(options.scrollElem || document); // 滚动条所在元素
|
var scrollElem = $(options.scrollElem || document); // 滚动条所在元素
|
||||||
var threshold = 'mb' in options ? options.mb : 50; // 临界距离
|
var threshold = 'mb' in options ? options.mb : 50; // 临界距离
|
||||||
var isAuto = 'isAuto' in options ? options.isAuto : true; // 否自动滚动加载
|
var isAuto = 'isAuto' in options ? options.isAuto : true; // 否自动滚动加载
|
||||||
|
var moreText = options.moreText || "加载更多"; // 手动加载时,加载更多按钮文案
|
||||||
var end = options.end || '没有更多了'; // “末页”显示文案
|
var end = options.end || '没有更多了'; // “末页”显示文案
|
||||||
var direction = options.direction || 'bottom';
|
var direction = options.direction || 'bottom';
|
||||||
var isTop = direction === 'top';
|
var isTop = direction === 'top';
|
||||||
|
@ -30,7 +31,7 @@ layui.define('jquery', function(exports){
|
||||||
var notDocument = options.scrollElem && options.scrollElem !== document;
|
var notDocument = options.scrollElem && options.scrollElem !== document;
|
||||||
|
|
||||||
//加载更多
|
//加载更多
|
||||||
var ELEM_TEXT = '<cite>加载更多</cite>'
|
var ELEM_TEXT = '<cite>' + moreText + '</cite>'
|
||||||
,more = $('<div class="layui-flow-more"><a href="javascript:;">'+ ELEM_TEXT +'</a></div>');
|
,more = $('<div class="layui-flow-more"><a href="javascript:;">'+ ELEM_TEXT +'</a></div>');
|
||||||
|
|
||||||
if(!elem.find('.layui-flow-more')[0]){
|
if(!elem.find('.layui-flow-more')[0]){
|
||||||
|
|
|
@ -534,50 +534,27 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
||||||
}
|
}
|
||||||
|
|
||||||
// 标注 dd 的选中状态
|
// 标注 dd 的选中状态
|
||||||
var setThisDd = function(prevNext, thisElem1){
|
var setThisDd = function(prevNext){
|
||||||
var nearDd, cacheNearElem
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
var allDisplayedElem = dl.children('dd:not(.'+ HIDE +',.'+ DISABLED +')');
|
||||||
|
if(!allDisplayedElem.length) return;
|
||||||
|
var firstIndex = 0;
|
||||||
|
var lastIndex = allDisplayedElem.length - 1;
|
||||||
|
var selectedIndex = -1;
|
||||||
|
|
||||||
// 得到当前队列元素
|
layui.each(allDisplayedElem, function(index, el){
|
||||||
var thisElem = function(){
|
if($(el).hasClass(THIS)){
|
||||||
var thisDd = dl.children('dd.'+ THIS);
|
selectedIndex = index;
|
||||||
|
return true;
|
||||||
// 如果是搜索状态,且按 Down 键,且当前可视 dd 元素在选中元素之前,
|
|
||||||
// 则将当前可视 dd 元素的上一个元素作为虚拟的当前选中元素,以保证递归不中断
|
|
||||||
if(dl.children('dd.'+ HIDE)[0] && prevNext === 'next'){
|
|
||||||
var showDd = dl.children('dd:not(.'+ HIDE +',.'+ DISABLED +')')
|
|
||||||
,firstIndex = showDd.eq(0).index();
|
|
||||||
if(firstIndex >=0 && firstIndex < thisDd.index() && !showDd.hasClass(THIS)){
|
|
||||||
return showDd.eq(0).prev()[0] ? showDd.eq(0).prev() : dl.children(':last');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
|
||||||
if(thisElem1 && thisElem1[0]){
|
var nextIndex = prevNext === 'prev'
|
||||||
return thisElem1;
|
? (selectedIndex - 1 < firstIndex ? lastIndex : selectedIndex - 1)
|
||||||
}
|
: (selectedIndex + 1 > lastIndex ? firstIndex : selectedIndex + 1)
|
||||||
if(nearElem && nearElem[0]){
|
|
||||||
return nearElem;
|
|
||||||
}
|
|
||||||
|
|
||||||
return thisDd;
|
var selectedElem = allDisplayedElem.eq(nextIndex);
|
||||||
// return dds.eq(index);
|
selectedElem.addClass(THIS).siblings().removeClass(THIS); // 标注样式
|
||||||
}();
|
|
||||||
|
|
||||||
cacheNearElem = thisElem[prevNext](); // 当前元素的附近元素
|
|
||||||
nearDd = thisElem[prevNext]('dd:not(.'+ HIDE +')'); // 当前可视元素的 dd 元素
|
|
||||||
|
|
||||||
// 如果附近的元素不存在,则停止执行,并清空 nearElem
|
|
||||||
if(!cacheNearElem[0]) return nearElem = null;
|
|
||||||
|
|
||||||
// 记录附近的元素,让其成为下一个当前元素
|
|
||||||
nearElem = thisElem[prevNext]();
|
|
||||||
|
|
||||||
// 如果附近不是 dd ,或者附近的 dd 元素是禁用状态,则进入递归查找
|
|
||||||
if((!nearDd[0] || nearDd.hasClass(DISABLED)) && nearElem[0]){
|
|
||||||
return setThisDd(prevNext, nearElem);
|
|
||||||
}
|
|
||||||
|
|
||||||
nearDd.addClass(THIS).siblings().removeClass(THIS); // 标注样式
|
|
||||||
followScroll(); // 定位滚动条
|
followScroll(); // 定位滚动条
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -658,9 +635,11 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
||||||
if(createOptionElem[0]){
|
if(createOptionElem[0]){
|
||||||
createOptionElem.attr('lay-value', value).html(util.escape(value));
|
createOptionElem.attr('lay-value', value).html(util.escape(value));
|
||||||
}else{
|
}else{
|
||||||
var ddElem = $('<dd>');
|
// 临时显示在顶部
|
||||||
ddElem.addClass(CREATE_OPTION).attr('lay-value', value).html(util.escape(value));
|
var ddElem = $('<dd>').addClass(CREATE_OPTION).attr('lay-value', value).html(util.escape(value));
|
||||||
dl.append(ddElem);
|
var firstOptionELem = dl.children().eq(0);
|
||||||
|
var hasTips = firstOptionELem.hasClass('layui-select-tips');
|
||||||
|
firstOptionELem[hasTips ? 'after' : 'before'](ddElem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
|
@ -719,10 +698,10 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
||||||
othis.addClass(THIS);
|
othis.addClass(THIS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 将新增的 option 元素添加到末尾
|
||||||
if(isCreatable && othis.hasClass(CREATE_OPTION)){
|
if(isCreatable && othis.hasClass(CREATE_OPTION)){
|
||||||
othis.removeClass(CREATE_OPTION);
|
dl.append(othis.removeClass(CREATE_OPTION));
|
||||||
var optionElem = $('<option>');
|
var optionElem = $('<option>').attr('value', value).text(othis.text());
|
||||||
optionElem.attr('value', value).text(othis.text());
|
|
||||||
select.append(optionElem);
|
select.append(optionElem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue