网站首页 > 技术文章 正文
需求:
开发商城项目时,促销活动管理模块中添加促销活动的时候需要选择某个商品分类参与促销,并且在商品分类select下拉选项中当鼠标移动到某个选项上时显示该商品分类下面具有的商品的数量。
效果展示:
示例代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>给layui select元素的下拉选项增加title提示</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no">
<link rel="stylesheet" href="../src/css/layui.css">
<style>
body {
padding: 10px;
}
</style>
</head>
<body>
<form class="layui-form layui-form-pane1" action="" lay-filter="first">
<div class="layui-form-item">
<label class="layui-form-label">商品分类:</label>
<div class="layui-input-block">
<select name="goodsCategory" lay-filter="goodsCategory">
<option value="">请选择商品分类</option>
</select>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="*">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
<script src="../src/layui.js"></script>
<script>
layui.use(['jquery', 'form'], function () {
var $ = layui.jquery, form = layui.form;
// 商品分类数据初始化
function categoryInit(data) {
var len = data.length;
if (len > 0) {
// 填充商品分类数据
var optionHtml = "";
for (i = 0; i < len; i++) {
var optionTitle = "包含" + data[i].goodsNum + "种商品";
optionHtml += "<option value='" + data[i].categoryId + "' title='" + optionTitle + "'>" + data[i].categoryName + "</option>";
}
$("select[name='goodsCategory']").append(optionHtml);
// 重新渲染数据
form.render("select");
// 给弹出层中显示的dd元素增加title属性
addTitleToDd();
}
}
// 给select弹出层中显示的dd元素增加title属性
function addTitleToDd() {
var multipleOptionObjs = $("select[name='goodsCategory']").find('option');
for (var i = 0; i < $(multipleOptionObjs).length; i++) {
var singleOptionObj = $(multipleOptionObjs)[i];
var categoryId = $(singleOptionObj).attr("value"), title = $(singleOptionObj).attr("title");
if (categoryId != "") {
var ddSelector = "dd[lay-value='" + categoryId + "']";
var ddTitle = (title == undefined) ? "" : title;
var ddObj = $("select[name='goodsCategory']").siblings("div.layui-form-select").find('dl').find(ddSelector);
// dd元素增加title提示
$(ddObj).attr("title", ddTitle);
}
}
}
// 给select的input元素增加title元素
function addTitleToSelectInput(title) {
var inputObj = $("select[name='goodsCategory']").siblings("div.layui-form-select").find('.layui-select-title').find('input');
$(inputObj).attr("title", title);
}
// ajax获取商品分类及商品分类下商品数量数据(这里的数据根据实际情况可能需要通过请求服务端接口获取)
var dataFromAjaxRequest = {
"errno": 0,
"data": [
{ "categoryId": 1, "categoryName": "男装", "goodsNum": 21 },
{ "categoryId": 2, "categoryName": "女装", "goodsNum": 22 },
{ "categoryId": 3, "categoryName": "百货", "goodsNum": 23 },
{ "categoryId": 4, "categoryName": "食品", "goodsNum": 24 },
{ "categoryId": 5, "categoryName": "家电", "goodsNum": 25 },
]
};
categoryInit(dataFromAjaxRequest.data);
// select事件监听
form.on('select(goodsCategory)', function (data) {
var selectedElementTitle = data.elem[data.elem.selectedIndex].title;
// 给select的input元素增加title元素
addTitleToSelectInput(selectedElementTitle);
});
});
</script>
</body>
</html>
猜你喜欢
- 2024-09-21 VBA对象的方法、属性、事件及编程小技巧
- 2024-09-21 看我如何把NIO拉下神坛(将你拉下神坛)
- 2024-09-21 一篇文章搞懂 Python select 模块
- 2024-09-21 分享测试环境中一条sql拖垮整个数据库的解决思路
- 2024-09-21 Java nio 空轮询bug到底是什么(netty 空轮询)
- 2024-09-21 澳洲最大杏仁生产商Select Harvests旗下站点发生火灾事件
- 2024-09-21 湾岸传说|起底大阪湾岸最速车队(大阪湾地理位置)
- 2024-09-21 你知道什么是Select函数吗?(select()函数)
- 2024-09-21 H5 事件(h5事件前端侧边滑动返回)
- 2024-09-21 Unity自定义inspector样式(unity生成设置)
- 1514℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 568℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 509℃MySQL service启动脚本浅析(r12笔记第59天)
- 486℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 485℃启用MySQL查询缓存(mysql8.0查询缓存)
- 466℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 446℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 444℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)