博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery实现,动态自动定位弹窗。JS分页,Ajax请求
阅读量:5337 次
发布时间:2019-06-15

本文共 3495 字,大约阅读时间需要 11 分钟。

工作中碰到一个问题,一个页面中碰到多个地方需要弹窗数据。

网上找了一圈,没有找到合适的,所以自己写了一个。

兼容IE7+,chrome。其它未测试。

需求:点击任意的输入框(也可其它元素,代码中有注释),在输入框下,出现弹窗。出现我需要的数据

效果:

窗口1

窗口2

代码如下:

#on_select{	 visibility:hidden;/*初始隐藏*/	 width: 350px;	 height: 280px;	 position: absolute;	 z-index: 200;	 background-color: white;	 color: black;	 border: 1px solid #2b8fce;	 top:0px;	 left: 0px;}#on_select ul{	list-style:none; /* 去掉ul前面的符号 */    margin: 0px; /* 与外界元素的距离为0 */    padding: 0px; /* 与内部元素的距离为0 */    width: 100%; /* 宽度根据元素内容调整 */}#on_select ul li{    float:left; /* 向左漂移,将竖排变为横排 */    cursor: pointer;}#div_ul1{background-color: #2b8fce;height: 30px;}#div_ul1 li{	height: 25px;	padding-top: 5px;	width: 20%;	color:#e6f9ff;}#div_ul2 li{	width: 100px;	font-size: 12px;	color: #666;	height: 25px;	padding-left:10px;	text-align: left;}
 
  • A-E
  • F-J
  • K-O
  • P-T
  • U-Z
//此段代码,必须写在body标签中
$("#mainMine").click(function(){/* 设置需要弹窗的输入框,当然可以选其它你需要作为弹窗点的元素 */						changeValue(document.getElementById("mainMine"));					});
$("#otherMainMine").click(function(){/* 设置第二个弹窗点 */						changeValue(document.getElementById("otherMainMine"));					});										
					/* 多个地方需要,如上,多设置几个 */
					function changeValue(vid){//调用此函数,出现弹窗
						ctclick=vid;changeRect();
						}
					function changeRect(){ //设置选择框的位置和数据
						var d=document.getElementById("li1");//获取第一个类别
						changeul2(d);//设置默认页面
						$("#on_select").css("visibility","visible");//选择框设置为显示
							$("#on_select").css("top",$(ctclick).offset().top+$(ctclick).height());
								/*$(ctclick).offset().top获取需要弹窗元素距离最外层父元素顶部的绝对距离*/								$("#on_select").css("left",$(ctclick).offset().left);
								/*$(ctclick).offset().left获取需要弹窗元素距离最外层父元素左边的绝对距离*/
						}; 					/*到此实现弹窗*/					$("#on_select").mouseleave(function(){//鼠标离开弹窗效果						$("#on_select").css("visibility","hidden");					});										/* 改变div_ul2里面的值 */					function changeul2(u){							ctpage=1;//设置初始第一页							$("#div_ul1").children().css("background-color", "transparent").css("color","#e6f9ff");//设置所以选择项背景为透明							$(u).css("background-color","#66c8e8").css("color","white").css("font-weight","bold");//设置当前选择项背景颜色								$.ajax({									url:"getCatalog.action?CatalogId="+u.value,									async:false,									success:function(data){										s=data.split(",");//解析数据										allpage=parseInt((s.length-1)/size+1);//设置总页数										$("#div_ul2").empty();										for(var i=(ctpage-1)*size;i
"+s[i]+""); } $("#div_ul2").append("
上一页   |   
"); } }); } //分页显示 function changepage(page){ var sn=page*size;//当前页显示数组中的哪些数据 if(page==allpage && (s.length-(page-1)*size)
"+s[i]+""); } if(page==1){ $("#div_ul2").append("
上一页   |   
"); }else if(page==allpage){ //alert(page==allpage); $("#div_ul2").append("
上一页   |   
下一页
"); }else { $("#div_ul2").append("
上一页   |   
"); } } function changeMM(ipt){//设置输入框里面的值 $(ctclick).empty();//清空数据 $(ctclick).val(ipt.innerText);//重填数据 if(ctclick!=document.getElementById("mainMine")){ $("#on_select").css("visibility","hidden"); return ; }
 
 
 

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/v-weiwang/p/4773772.html

你可能感兴趣的文章
bzoj1018[SHOI2008]堵塞的交通traffic
查看>>
day22_1-课前上节复习+os模块
查看>>
python (五)小数据池、集合、copy、文件操作
查看>>
Nginx rewrite URL examples with and without redirect address
查看>>
浮点类型的特殊性知多少
查看>>
继承(一)
查看>>
【NOIP模拟】花花森林
查看>>
copy和mutableCopy
查看>>
这是我的第一篇播客,多多指教
查看>>
C语言编程经典100例
查看>>
Python3——根据m3u8下载视频(上)之urllib.request
查看>>
使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(四)-- Middleware
查看>>
Java实现快速排序
查看>>
小程序的生命周期
查看>>
linux之 文本编辑 的基础知识点
查看>>
Android系统下,用adb实现自动获取应用性能数据
查看>>
微信小程序采坑之scroll-view
查看>>
Codeforces Round #532 (Div. 2)
查看>>
Linux基础命令和NAT技术
查看>>
在Outlook中修改脱机文件(.ost)的保存位置
查看>>