下拉菜单连动效果的一种用法

js实现下拉菜单动画效果 阅读详情
页面js:
/**
 * 物料分类Json
 * {mainId:{
 * 		mainName, subJsonObject:{
 * 			subId:{subName, minJsonObject:{
 * 				minid:minName}}}}}
 */
var materialTypeInfoJson;
$(function(){
	//更改物料大分类获取对应中分类和小分类
	$("#mainTypeId").on("change", function(){
		var mainTypeId = $("#mainTypeId").val();
	 	var subTypeId = $("#subTypeId").val();
	 	var mainId = $("#subTypeId").find("[value='"+subTypeId+"']").attr("pater");
		if(mainTypeId != undefined && mainTypeId != ""){
			$("#subTypeId").children(":gt(0)").hide();
			$("#subTypeId").children("[pater='"+mainTypeId+"']").show();
			if(mainId != mainTypeId){
		 		$("#subTypeId").val("");
			}
		}else{
			$("#subTypeId").children().show();
			$("#subTypeId").val("")
		}
		$("#subTypeId").trigger("change");
	});
	//更改物料中分类获取对应大分类和小分类
	$("#subTypeId").on("change", function(){
	 	var subTypeId = $("#subTypeId").val();
	 	var minTypeId = $("#minTypeId").val();
	 	var subId = $("#minTypeId").find("[value='"+minTypeId+"']").attr("pater");
		$("#minTypeId").children(":gt(0)").hide();
	 	if(subTypeId != undefined && subTypeId != ""){
	 		var mainId = $("#subTypeId").find("[value='"+subTypeId+"']").attr("pater");
	 		$("#mainTypeId").val(mainId);
			$("#subTypeId").children(":gt(0)").not("[pater='"+mainId+"']").hide();
			$("#minTypeId").children("[pater='"+subTypeId+"']").show();
			if(subId != subTypeId){
				$("#minTypeId").val("");
			}
	 	}else{
	 		$("#subTypeId").children(":gt(0)").each(function(){
	 			var style = $(this).attr("style");
	 			if(/display: none;/.test(style)){
	 				return;
	 			};
	 			var subId_temp = $(this).val();
	 			$("#minTypeId").children("[pater='"+subId_temp+"']").show();
	 		});
			$("#minTypeId").val("");
	 	}
	});
	//更改物料小分类获取对应大分类和中分类
	$("#minTypeId").on("change", function(){
	 	var minTypeId = $("#minTypeId").val();
	 	if(minTypeId != undefined && minTypeId != ""){
	 		var subId = $("#minTypeId").find("[value='"+minTypeId+"']").attr("pater");
	 		$("#subTypeId").val(subId);
	 		$("#subTypeId").trigger("change");
	 	}
	});
	//获取物料分类Json
	if(materialTypeInfoJson == undefined || materialTypeInfoJson == ""){
		$.ajax({
			type : "post",
			url : contentPath + "/ajax/getMaterialTypeInfo.do",
			async : false,
			success : function(data) {
				materialTypeInfoJson = data;
			},
			dataType : "json"
		});
		drawSelectOption(materialTypeInfoJson);
	}
});
//根据传过来的参数,画物料分类下拉框选项
function drawSelectOption(jsonObj){
	var mainTypeSelect = $("#mainTypeId");
	var mainTypeId = mainTypeSelect.val();
	mainTypeSelect.empty();
	$("<option value>N/A</option>").appendTo(mainTypeSelect);
	var subTypeSelect = $("#subTypeId");
	var subTypeId = subTypeSelect.val();
	subTypeSelect.empty();
	$("<option value>N/A</option>").appendTo(subTypeSelect);
	var minTypeSelect = $("#minTypeId");
	var minTypeId = minTypeSelect.val();
	minTypeSelect.empty();
	$("<option value>N/A</option>").appendTo(minTypeSelect);
	$.each(jsonObj, function(k,v){
		var mainId = k;
		var mainName = v.mainName;
		var subJsonObject = v.subJsonObject;
		$("<option value=\""+mainId+"\">"+mainName+"</option>").appendTo(mainTypeSelect);
		$.each(subJsonObject, function(k,v){
			var subId = k;
			var subName = v.subName;
			var minJsonObject = v.minJsonObject;
			$("<option value=\""+subId+"\" pater=\""+mainId+"\">"+subName+"</option>").appendTo(subTypeSelect);
			if(minJsonObject == undefined){
				return;
			}
			$.each(minJsonObject, function(k,v){
				var minId = k;
				var minName = v.minName;
				$("<option value=\""+minId+"\" pater=\""+subId+"\">"+minName+"</option>").appendTo(minTypeSelect);
			});
		});
	});
	mainTypeSelect.val(mainTypeId);
	mainTypeSelect.trigger("change");
	subTypeSelect.val(subTypeId);
	subTypeSelect.trigger("change");
	minTypeSelect.val(minTypeId);
	minTypeSelect.trigger("change");
}

Action:
public class GetMaterialTypeInfoAction extends ERPSTDProxyAction{
	protected ActionForward doExecute(FormBean parameterFB, ActionMapping mapping, ActionForm form, 
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		TableBean materialTypeTB = this.getERPServiceDelegation().getItemMasterService().getMaterialTypeInfo();
		JSONObject jsonObject = new JSONObject();
		JSONObject mainTypeJSONObject = null;//大分类
		JSONObject subTypeJSONObject = null;//中分类
		JSONObject subJsonObject = null;//中分类
		JSONObject minTypeJSONObject = null;//小分类
		JSONObject minJsonObject = null;//小分类
		for(int i = 0; i < materialTypeTB.size(); i ++){
			RowBean materialTypeRB = materialTypeTB.get(i);
			String mainId = materialTypeRB.getCellBeanValue("mainId");
			String mainName = materialTypeRB.getCellBeanValue("mainName");
			String subId = materialTypeRB.getCellBeanValue("subId");
			String subName = materialTypeRB.getCellBeanValue("subName");
			String minId = materialTypeRB.getCellBeanValue("minId");
			String minName = materialTypeRB.getCellBeanValue("minName");
			//处理大分类
			if(jsonObject.containsKey(mainId)){
				mainTypeJSONObject = jsonObject.getJSONObject(mainId);
			}else{
				mainTypeJSONObject = new JSONObject();
				mainTypeJSONObject.put("mainName", mainName);
				subJsonObject = new JSONObject();
			}
			//处理中分类
			if(subJsonObject.containsKey(subId)){
				subTypeJSONObject = subJsonObject.getJSONObject(subId);
			}else{
				subTypeJSONObject = new JSONObject();
				subTypeJSONObject.put("subName", subName);
				minJsonObject = new JSONObject();
			}
			//处理小分类
			minTypeJSONObject = new JSONObject();
			minTypeJSONObject.put("minName", minName);
			minJsonObject.put(minId, minTypeJSONObject);
			//json是用值传递,内容更改后需重新保存
			subTypeJSONObject.put("minJsonObject", minJsonObject);
			subJsonObject.put(subId, subTypeJSONObject);
			mainTypeJSONObject.put("subJsonObject", subJsonObject);
			jsonObject.put(mainId, mainTypeJSONObject);
		}
		PrintWriter pw = response.getWriter();
		pw.print(jsonObject.toString());
		pw.flush();
		return null;
	}
}

创建具有选中效果的自定义jQuery下拉菜单 本文还有配套的精品资源,点击获取 简介:本文深入探讨了使用jQuery实现一个input类型下拉菜单的方法,并演示了如何展示选中效果。通过HTML结构、CSS样式、jQuery事件处理和选中效果的代码实现,读者将学会如何创建和定制一个更为高级和交互性强的下拉菜单。这种自定义下拉菜单可以提供更好的用户体验,并且可根据实际项目需求进一步优化,比如添加搜索功能或动态加载选项。提供... 阅读详情

相关推荐

Android下拉菜单弹出和收缩效果实现指南

PopupWindow是一种可以在屏幕上显示自定义内容的悬浮窗组件,广泛应用于Android应用中,用于提供额外的信息显示或操作选项。它不会占据屏幕主要部分,使得用户在与主界面交互的同时,也能轻松查看或使用PopupWindow内的内容。菜单项的样式和属性决定了下拉菜单的外观和用户交互体验。以下是一些关键属性::菜单项的宽度,常用值包括和。:菜单项的高度,同上。:菜单项的内边距,为菜单项添加边距可以使内容显得更为清晰。:菜单项的文字颜色。

weixin_35950531的博客 1349

SELECT连接查询和嵌套查询

连接查询 同时涉及到两个及以上表的查询。 语句: SELECT <列名1>[,<列名2>,...] FROM <表1>,<表2>[,<表3>,...] WHERE [<表名1>.]<列名1><比较运算符>[<表名2>.]<列名2>; --WHERE后为连接条件,其中<列名1...

fu_GAGA的博客 4471

下拉列表省市区连动

下拉列表实现省、市、区三级连动,适合新手学习之用,GB编码

js-案例:省市连动下拉框

最终效果如下: - 完整代码如下:<html> <head> <style type="text/css"> </style> <title>Document</title> </head> <body> <select id="country" onchange="add1(this.value);"> <option value="0">请选择··</o

zhulin0519的博客 2784

三级联动下拉菜单,很简单的

三级联动下拉菜单,很简单的,觉得不错,关于二级的网上可以随便找到

OSMDroid(1)——OSM简介,基础例子搭建

1.OSMDroid简介 Osmdroid是一款完全开源的地图基本操作SDK,相比于现在普遍使用的百度地图,高德地图,谷歌地图等最大的好处就是开源。 最近在做一个军方项目,要求完全不能联网,从开发到应用整个阶段都是在局域网进行,相比之下采用了OSMDroid这个SDK作为解决方案。 先来看OSMDroid,便是(OpenStreetMapForAndroid),后面都简称OSM...

robotskly的博客 6182

动态联动select下拉框实现

我们在做下拉框选择时,常常会遇到一种场景,就是需要两个下拉框,其中一个下拉框的选项和内容需要根据第一个的下拉框的选择动态变化。比如我有大的分类:有氧运动  无氧运动选择有氧运动时,选项有:跑步,游泳选择无氧运动时,选项有:深蹲,卧推本章记录如何实现动态联动select下拉框实现。我们在之前的文章中已经在SpringMVC基础框架的基础上应用了BootStrap的后台框架,在此基础上记录动态联动se

直到世界的尽头 2万+

时空数据建模的跨节点联邦图神经网络:KDD21 Cross-Node Federated Graph Neural Network for Spatio-Temporal Data Modeling

前言 联邦学习(FL)虽然已经被广泛研究,但是对复杂的时空依赖关系进行建模以提高预测能力仍然是一个开放的问题。此外目前最优的时空预测模型假定对数据的访问不受限制,忽略了对数据共享的限制。基于此,本文提了一个基于图联邦学习的时空数据模型 Cross-Node Federated Graph Neural Network (CNFGNN),该模型在跨节点联邦学习的约束下,使用基于图神经网络(GNN)的架构对底层图结构进行编码,属于结构化联邦的一种,每个本地模型利用私有数据进行学习,并保持分散性。CNFGNN

qq_56027260的博客 1810

php日期下拉列表联动,究了一下连动下拉菜单,共享一下,希望_php

php代码:--------------------------------------------------------------------------------Listhttp://www.gaodaima.com/45195.html究了一下连动下拉菜单,共享一下,希望_phpif( !( $link = mysql_connect() ) ){fatal("Could not co...

weixin_27298377的博客 190

python DEA: 基于非径向距离NDDF的Malmquist-Luenberger 指数及其分解

点赞发Nature 关注中Science Malmquist-Lenberger指数(ML指数)是距离函数与DEA计算中常用的指数,ML指数可以进一步分解为技术进步technological progress和效率改善effeciency change. 技术进步常被当做增长模型中的全要素生产率,用到许多计量经济研究中,探讨影响技术进步的环境变量。这里我分享一个考虑非期望产出下的NDDF方法计算ML指数。 该ML指数为global ML(区别于sequential ML) import numpy as

Cmmmmm丶的博客 5299

ESP32-C3蓝牙透传通信的BLE协议栈工程实践

蓝牙低功耗(BLE)透传是一种基于GATT服务模型的数据透明传输机制,其核心原理在于Peripheral设备通过广播建立连接,并在GATT Server层暴露可读写特征值实现双向数据通道。该技术具备低功耗、跨平台兼容性强、开发门槛适中等优势,广泛应用于智能硬件、工业传感器与嵌入式网关等场景。在实际工程中,透传稳定性高度依赖BLE协议栈的分层协同——Link Layer负责可靠连接建立,GATT Server则定义数据交互语义;而ESP32-C3的AT指令集正是对这两层能力的封装调度。本文聚焦BLE透传的关键

weixin_29859471的博客 124

下拉菜单过渡效果

在这里给大家分享的功能是下拉菜单过渡效果 效果图: Html代码: <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>下拉菜单过渡效果</title&...

weixin_44588946的博客 1205

学Simulink--复杂路况场景实例:基于Simulink的智能车辆高速公路行驶仿真(超车与车道变换)

本文详细介绍了基于Simulink的智能车辆高速公路超车仿真系统设计方法。系统包含多车道交通流建模、三层超车决策逻辑(触发条件、可行性检查、执行许可)、五次多项式变道轨迹规划以及横向纵向协同控制等核心模块。通过设定三车道场景(自车初始速度100km/h,前方慢车72km/h),演示了如何实现安全高效的左变道超车全过程(5秒完成3.75m横向移动),并验证了变道平滑性(最大横向加速度1.8m/s²)和安全距离(最小TTC 5.2s)。文章还强调了传感器融合的必要性,并提供了从交通流生成到控制器设计的完整Sim

xiaoheshang_123的博客 397

用jQuery实现下拉菜单效果

用jQuery实现下拉菜单效果

yuhaowen的博客 2658

ADS电路仿真方法综述:原理与应用

在射频与微波电路设计中,精确的仿真技术是验证性能的关键。ADS(Advanced Design System)作为行业标准工具,集成了多种仿真方法,适用于不同场景。本文将系统解析瞬态分析、谐波平衡(HB)、交流分析(AC)、直流分析(DC)、S参数、大信号SP(LSSP)及包络分析的原理、实现机制与应用场景。

u014344410的博客 482

网络工程师如何利用Python自动Telnet到N个路由器并执行配置?

telnetlib是Python标准库中的一个模块,专门用于实现Telnet协议。通过telnetlib,我们可以方便地与支持Telnet协议的远程设备进行通信。telnetlib提供了基本的Telnet功能,如连接远程主机、发送命令、读取响应等,使得编写Telnet自动化脚本变得非常简单。文档:可以选择中文:虽然telnetlib的功能相对基础,但对于大多数Telnet操作来说已经足够。通过telnetlib,可以轻松地实现与网络设备的交互,完成自动化配置任务。

网络技术联盟站 299

android联动下拉菜单,Android spinner下拉框连动

本代码主要功能1、 向拉菜单 spinner添加数据2、下拉菜单连动以下是核心代码//定义变量private Spinner spinner3;private Spinner spinner4;private Map> gaderMap=new HashMap>();private List gader=new ArrayList<>();private List stud...

weixin_29090089的博客 384

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

jQuery实现下拉菜单[代码+详细讲解+效果图]

jQuery实现下拉菜单[代码+详细讲解+效果图] 非常的高效。

心态的博客 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

详解Bootstrap中JS插件实现下拉菜单效果

在编写网站过程中,导航条中下拉菜单功能十分常见。那么,今天就分享一下关于如何通过Bootstrap中JS插件来实现下拉菜单功能。 在官方文档中是这么形容下拉菜单插件的 翻译过来就是: 通过此插件您可以为几乎所有东西添加下拉菜单,包括导航条、标签页、胶囊式按钮。 接下来,我们就按照官方文档所描述的那样,为大家演示, 我们如何通过JS插件为导航条、标签页以及胶囊式按钮添加下

wyhstars的博客 1万+

Vue3案例——通过指令实现下拉菜单效果

网站主页中经常需要设计下拉菜单,当鼠标移动到某个菜单上时会弹出下拉子菜单列表,每个子菜单项可以链接到不同的页面,当鼠标离开菜单列表时,子菜单项会被隐藏掉。在Chrome浏览器中运行程序,按F12键打开控制台并切换到Elements选项卡,结果如图2-13所示。在Chrome浏览器中运行程序,当鼠标放置在“经典图书”菜单项目时,结果如图2-30 所示。【例2.12】 v-for指令遍历数组(源代码\ch02\2.12.html)。下面看一个示例,使用v-for指令循环渲染一个数组。

夏天又到了的专栏 2389

使用Vue指令实现下拉菜单效果

使用Vue指令实现下拉菜单效果 模仿重庆红岩历史革命博物馆官网的导航栏内容和效果,使用Vue实现。 官网地址如下:https://www.hongyan.info/ 官网效果 效果图片展示 代码展示 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"&

yuhaowen的博客 7732

利用js实现下拉菜单效果

这个模块在实际开发中也是经常会用到的,所以让我们一起学起来把 成果图展示 鼠标移动到某一个模块上就会显示下拉菜单,在后续的开发中自己可以根据实际情况添加各种样式和链接,我这里只是做了基础的功能配置 代码展示 -------css------- <style> *{ margin: 0; padding: 0; ...

weixin_45658984的博客 5999

HTML+CSS+JavaScript实现下拉菜单效果

HTML 方面,导航栏的每个 <li>元素里面包含 <a> 和 <ul> ,将 <li> 设置为相对定位, 将 <ul> 设置为绝对定位,并将 <ul> 的 display 属性设置为 none 。通过 js 给导航栏的每个 <li> 添加事件监听器,当鼠标覆盖 <li> 时,令 <ul> 的display 属性值为 block;当鼠标离开<li> 时,令 <ul> 的display 属性值为 none;

apple_54470279的博客 9065

BootStrap下拉菜单点击不显示效果

文章目录BootStrap下拉菜单点击不显示效果的原因 BootStrap下拉菜单点击不显示效果的原因 不会出现下拉菜单效果的原因? 引入顺序问题 <link href="css/bootstrap.min.css" rel="stylesheet" /> <script type="text/javascript" src="js/jquery-2.1.1.min.js"></script> <script type="text/javascript" sr

weixin_44868200的博客 3280

用transtion给下拉菜单实现缓动效果

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>第二题-用trans...

qq_43575703的博客 570
上一篇: js中计算中文长度方法
下一篇: ireport各个版本的下载地址分享
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值