成品网站w灬 源码1688网页/如何介绍自己设计的网页

成品网站w灬 源码1688网页,如何介绍自己设计的网页,短视频seo推广隐迅推专业,网络运营专员模板使用&#xff08;lay-module/searchSelect&#xff09;&#xff0c;依赖于 jquery、layui.dist 中的 dropdown 模块实现&#xff08;所以data 格式请参照 layui文档&#xff09; <link rel"stylesheet" href"layui-v2.5.6/dist/css/layui.css" /&g…

模板使用(lay-module/searchSelect),依赖于 jquery、layui.dist 中的 dropdown 模块实现(所以data 格式请参照 layui文档)

<link rel="stylesheet" href="layui-v2.5.6/dist/css/layui.css" />
<link rel="stylesheet" href="lay-module/searchSelect/index.css" /><form id="app-form" class="layui-form layuimini-form"><div class="layui-form-item"><label class="layui-form-label">测试</label><div class="layui-input-block search-select-component"><!-- data-init以title字段作为显示 --><input name="tags" data-init='[{"id":1,"title":"123"}]' placeholder="Search..." class="layui-input search-select-input" /></div></div><div class="layui-form-item"><button type="submit" class="layui-btn" lay-submit lay-filter="demo-submit">确认</button><button type="reset" class="layui-btn">重置</button></div>
</form><script src="jquery.min.js"></script>
<script src="layui-v2.5.6/dist/layui.js"></script>
<script src="lay-module/searchSelect/index.js"></script>
<script>
layui.use(['jquery','form'], function () {const $ = layui.jquery;const form = layui.form;// 搜索下拉选择组件处理方法(默认拾取元素 elem: '.search-select-input')layui.searchSelect.render({onSearch: function (search) {console.log('onSearch', search);$.ajax({url: '/api/gelist',type: 'GET',data: {key: search.name,val: search.value,},dataType: 'json',success: function (res) {if (res.code == 1) {// res.data 中的 "title字段" 作为显示名称search.update(res.data);} else {layer.msg(res.msg, { icon: 2 });}},error: function () {layer.msg('network error', { icon: 2 });},});},});// 表单提交处理form.on('submit(demo-submit)', function(data){// 使用 layui.searchSelect.getValue 获取所有 searchSelect 值,传入 name 可以只取对应的value// 对应的value也会设置到对应的 .search-select-input 的 data-val 中const dd = layui.searchSelect.getValue();console.log(data, dd)});
});
</script>

searchSelect 模块实现(lay-module/searchSelect 目录中添加以下 index.js、index.css 文件)

1、index.css

.search-select-component .tags.select-list {display: flex;flex-direction: row;flex-wrap: wrap;gap: 10px;margin-top: 10px;margin-bottom: 20px;border: none;
}.search-select-component .tags.select-list:empty {margin-top: 0;margin-bottom: 0;
}.search-select-component .select-list-item {position: relative;padding-right: 20px;padding-top: 2px;
}.search-select-component .select-list-item .name {font-size: 14px;
}.search-select-component .select-list-item .del {position: absolute;top: 0;right: 0;font-size: 30px;font-weight: normal;line-height: 20px;float: none;width: 18px;padding: 0;cursor: pointer;text-align: center;opacity: 1;color: #ea0000;border: 0 none;background: transparent none repeat scroll 0 0;text-shadow: none;
}.search-select-component .layui-layer-msg {top: 40% !important;
}

2、index.js 文件

/** @Author: mojon* @Date:   2025-02-19 11:40:42* @Last Modified by:   hi916* @Last Modified time: 2025-02-19 15:52:33* @Last Modified description: 搜索下拉选择组件(多选)*/
layui.define(['jquery', 'dropdown'], function (exports) {'use strict';const $ = layui.jquery;const dropdown = layui.dropdown;// 绑定值let values = {};// 删除itemfunction delItem(event) {const name = $(event.target).data('name');const value = $(event.target).data('value');console.log('删除item', name, value);if (values[name]) {values[name] = values[name].filter((item) => JSON.stringify(item) != JSON.stringify(value));$(event.target).parent().remove();$(event.target).data('val', values[name]);}}// 添加itemfunction addItem(el, value) {const name = $(el).attr('name');values[name].push(value);$(el).data('val', values[name]);console.log('添加item', name, values[name]);// item容器const div = document.createElement('div');div.classList.add('select-list-item');// title显示 (以title字段作为显示)const span = document.createElement('span');span.classList.add('name');span.textContent = value.title;// del按钮const btn = document.createElement('button');btn.classList.add('del');btn.textContent = 'x';btn.setAttribute('type', 'button');btn.setAttribute('data-name', name);btn.setAttribute('data-value', JSON.stringify(value));// 监听删除事件btn.addEventListener('click', delItem);div.appendChild(span);div.appendChild(btn);$(el).siblings('.tags.select-list').append(div);// $(el).siblings('.tags.select-list').append(`//     <div class="select-list-item">//       <span class="name">${data.title}</span>//       <button type="button" class="del">×</button>//     </div>// `);}// 监听选择function onSelect(el) {// 插入选择存放位置$(el).after('<div class="tags select-list"></div>');// 获取配置const name = $(el).attr('name');const width = $(el).width();const dropdown = layui.dropdown;const dropdownHeight = 300;dropdown.render({elem: el,id: name,position: 'absolute', // 设置位置为相对data: [],style: `max-height: ${dropdownHeight}px;width: ${width}px;overflow-y: auto;overflow-x: hidden;`,click: function (obj) {if (values[name]) {const isInclude = values[name].find((item) => JSON.stringify(item) == JSON.stringify(obj));// 没有重复选择if (!isInclude) addItem(el, obj);}},});}// 更新下拉选择列表function updateDropdown(name, data) {dropdown.reload(name, { data, show: true });}// 监听执行搜索function onSearch(el, callback = () => {}) {let timer = null;$(el).on('input', function (e) {const val = $(this).val();const data = $(this).data();const name = $(el).attr('name');clearTimeout(timer);timer = setTimeout(() => {if (val) {console.log('搜索onSearch', val);callback({...data,name: name,value: val,update: (data) => updateDropdown(name, data),});}}, 500);});}// 初始化(处理初始状态显示)function init(el) {const name = $(el).attr('name');const initValues = $(el).data('init');if (initValues) {initValues.forEach((value) => addItem(el, value));}console.log('初始化init', name, values);}// 获取值function getValue(name) {if (name) {return values[name];} else {return values;}}// 加载配置function render(options) {// 配置const opt = {elem: '.search-select-input',onSearch: () => {},...options,};// 遍历所有 searchSelect$(opt.elem).each((index, el) => {const name = $(el).attr('name');if (name) {// 生成预处理值values[name] = [];// 监听选择onSelect(el);// 监听搜索onSearch(el, opt.onSearch);// 初始化处理init(el);}});}// 组件初始化function Component() {return {render: render,getValue: getValue,};}exports('searchSelect', new Component());
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/71688.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Scrum方法论指导下的Deepseek R1医疗AI部署开发

一、引言 1.1 研究背景与意义 在当今数智化时代&#xff0c;软件开发方法论对于项目的成功实施起着举足轻重的作用。Scrum 作为一种广泛应用的敏捷开发方法论&#xff0c;以其迭代式开发、快速反馈和高效协作的特点&#xff0c;在软件开发领域占据了重要地位。自 20 世纪 90 …

蓝桥与力扣刷题(蓝桥 交换瓶子)

题目&#xff1a;有 N 个瓶子&#xff0c;编号 1 ~ N&#xff0c;放在架子上。 比如有 5 个瓶子&#xff1a; 2 1 3 5 4 要求每次拿起 2 个瓶子&#xff0c;交换它们的位置。 经过若干次后&#xff0c;使得瓶子的序号为&#xff1a; 1 2 3 4 5 对于这么简单的情况&#x…

Spring AutoWired与Resource区别?

大家好&#xff0c;我是锋哥。今天分享关于【Spring AutoWired与Resource区别?】面试题。希望对大家有帮助&#xff1b; Spring AutoWired与Resource区别? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Spring 中&#xff0c;Autowired 和 Resource 都是用于…

行业分析---对自动驾驶规控算法的思考

1 前言 随着自动驾驶端到端大模型的兴起&#xff0c;小鹏、华为、理想、蔚来、小米等公司都对自动驾驶业务部进行了组织架构的调整&#xff0c;准备应对新的或者更高级别的自动驾驶研发任务。 近几年由于自动驾驶技术的快速发展&#xff0c;不少从业者觉得相关职业的未来充满了…

【YOLOv8】损失函数

学习视频&#xff1a; yolov8 | 损失函数 之 5、类别损失_哔哩哔哩_bilibili yolov8 | 损失函数 之 6、定位损失 CIoU DFL_哔哩哔哩_bilibili 2.13、yolov8损失函数_哔哩哔哩_bilibili YOLOv8 的损失函数由类别损失和定位损失构成 类别损失&#xff1a;BCE Loss 定位损失…

小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试等,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。

小鱼深度评测 通义灵码2.0 1、引言2、通义灵码 更新与安装2.1 IDE插件更新2.1.1 PyCharm 更新2.1.2 VSCode 更新 2.2 官网下载更新 3、 使用体验3.1生成单元测试3. 2 跨语言编程3.3灵码2.0 与1.0 对比 4、总结 1、引言 通义灵码&#xff0c; 我一直使用的编码协助工具&#xf…

《微软量子芯片:开启量子计算新纪元》:此文为AI自动生成

量子计算的神秘面纱 在科技飞速发展的今天,量子计算作为前沿领域,正逐渐走进大众的视野。它宛如一把神秘的钥匙,有望开启未来科技变革的大门,而微软量子芯片则是这把钥匙上一颗璀璨的明珠。 量子计算,简单来说,是一种遵循量子力学规律调控量子信息单元进行计算的新型计算…

深度解读DeepSeek:从原理到模型

一、大模型模型发展路线退 二、DeepSeek V2-V3/R1技术原理 DeepSeek V2、V3 和 R1 模型架构优化要点&#xff1a; 1、‌DeepSeek V2‌ 混合专家架构&#xff08;DeepSeekMoE&#xff09;‌&#xff1a;采用细粒度专家划分与共享专家机制&#xff0c;总参数规模达236B但仅激活…

easyexcel 2.2.6版本导出excel模板时,标题带下拉框及其下拉值过多不显示问题

需求背景&#xff1a;有一个需求要做下拉框的值有100多条&#xff0c;同时这个excel是一个多sheet的导入模板 直接用easyexcel 导出&#xff0c;会出现下拉框的值过多&#xff0c;导致生成出来的excel模板无法正常展示下拉功能 使用的easyexcel版本&#xff1a;<depende…

基于WebRTC与AI大模型接入EasyRTC:打造轻量级、高实时、强互动的嵌入式音视频解决方案

随着物联网和嵌入式技术的快速发展&#xff0c;嵌入式设备对实时音视频通信的需求日益增长。然而&#xff0c;传统的音视频解决方案往往存在体积庞大、实时性差、互动体验不佳等问题&#xff0c;难以满足嵌入式设备的资源限制和应用场景需求。 针对以上痛点&#xff0c;本文将介…

AI工作流+专业知识库+系统API的全流程任务自动化

我有点悲观&#xff0c;甚至很沮丧&#xff0c;因为AI留给普通人的机会不多了&#xff0c;这既是人类之间权力的斗争&#xff0c;也是硅基生命和碳基生命的斗争。AI自动化是无法避免的趋势&#xff0c;如果人类不能平权&#xff0c;那就只能跪下接受审判。 通过整合AI工作流、专…

Lua | 每日一练 (3)

&#x1f4a2;欢迎来到张胤尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 Lua | 每日一练 (3)题目参考答案减少查找次数预分配表…

二叉树(中等题)

1、先序&#xff0c;中序遍历确定二叉树 105 方法一、 前提 ① 必须不能有重复元素② 只有先序&#xff0b;中序和后序&#xff0b;中序才能实现唯一树 思考要点&#xff1a; 不要想着用for循环&#xff0c;递归一定更好解决输入是vector&#xff0c;递归就得考虑传入索…

巧妙实现右键菜单功能,提升用户操作体验

在动态交互式图库中&#xff0c;右键菜单是一项能够显著提升用户操作便捷性的功能。它的设计既要响应用户点击位置&#xff0c;又需确保菜单功能与数据操作紧密结合&#xff0c;比如删除图片操作。以下将通过一段实际代码实现&#xff0c;展示从思路到实现的详细过程。 实现右键…

KEGG条形图绘制

原始数据 setwd("C:\\Users\\HUAWEI\\Desktop\\proteomic_WGCNA\\bacteria\\Eggnog\\KEGGhun") library(ggplot2) library(cols4all) dt <- read.csv("bacteria_KEGG.csv")dt$KEGG_Term <- factor(dt$KEGG_Term, levels rev(dt$KEGG_Term))#基础富集…

My Metronome for Mac v1.4.2 我的节拍器 支持M、Intel芯片

应用介绍 My Metronome 是一款适用于 macOS 的专业节拍器应用程序&#xff0c;旨在帮助音乐家、作曲家、学生和任何需要精确节奏控制的人进行练习。无论是进行乐器练习、音乐创作还是演出排练&#xff0c;My Metronome 都能为用户提供精准的节拍支持和灵活的功能&#xff0c;确…

宇树科技13家核心零部件供应商梳理!

2025年2月6日&#xff0c;摩根士丹利&#xff08;Morgan Stanley&#xff09;发布最新人形机器人研报&#xff1a;Humanoid 100: Mapping the Humanoid Robot Value Chain&#xff08;人形机器人100&#xff1a;全球人形机器人产业链梳理&#xff09;。 Humanoid 100清单清单中…

Part 3 第十二章 单元测试 Unit Testing

概述 第十二章围绕单元测试展开&#xff0c;阐述了单元测试的实践与重要性&#xff0c;通过对比其他测试类型&#xff0c;突出其特点&#xff0c;还介绍了单元测试的最佳实践、避免的反模式以及与测试替身相关的内容&#xff0c;为编写高质量单元测试提供指导。 章节概要 1…

酒店旅游API:数据交互的隐形桥梁——以携程API为例

一、API&#xff1a;酒店 和第三方服务无缝连接。 核心价值&#xff1a; 实时数据互通&#xff1a;房态、价格、库存秒级同步。业务流程自动化&#xff1a;预订、支付、确认全程无需人工干预。生态扩展&#xff1a;开发者可基于API构建定制化工具&#xff08;如比价插件、智能…

深入理解 JSP 与 Servlet:原理、交互及实战应用

一、引言 在 Java Web 开发领域,JSP(JavaServer Pages)和 Servlet 是两个至关重要的技术,它们共同构成了动态网页开发的基础。Servlet 作为服务器端的 Java 程序,负责处理客户端请求并生成响应;而 JSP 则是一种简化的 Servlet 开发方式,允许开发者在 HTML 页面中嵌入 J…