jquery实现页面交互的几个小例子

翻看了以前留下的笔记,发现自己竟然做过这么多的页面交互效果,没有使用原生js,全是通过jquery实现的,于是把他们整理下来,附上表现效果图及源代码

1 业务应用:授权商品组和删除商品组

本质:复选框及文字的左右移动

表现效果:点击确定时谈框提示哪些商品组已新授权或新删除,只是记录的并非商品组文字,而是商品组编码,各商品组之间以~号分隔

  1 <html >
  2 <head>
  3     <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
  4     <script src="jquery-1.8.3.js">
  5     </script>
  6
  7 </head>
  8
  9    <body>
 10       <div  style="margin-left:30%;margin-top:10%;width:400;height:400px;border:solid">
 11       <table >
 12          <tr>
 13             <td>
 14             <div id="leavediv" style="border:solid;width:150;height:340px">
 15                 <input type="checkbox" autocomplete="off" value="10006" name="leaved"/><span>电视机</span><br/>
 16                 <input type="checkbox" autocomplete="off" value="10007" name="leaved"/><span>洗衣机</span><br/>
 17                 <input type="checkbox" autocomplete="off" value="10008" name="leaved"/><span>冰箱</span><br/>
 18                 <input type="checkbox" autocomplete="off" value="10009" name="leaved"/><span>手表</span><br/>
 19                  <input type="checkbox" autocomplete="off" value="10010" name="leaved"/><span>奶粉</span><br/>
 20                 <input type="checkbox" autocomplete="off" value="10011" name="leaved"/><span>空调</span><br/>
 21                 <input type="checkbox" autocomplete="off" value="10012" name="leaved"/><span>音像</span><br/>
 22
 23
 24             </div>
 25             </td>
 26             <td>
 27             <input id="addstr" type="button" value="授权>"><br/>
 28             <input id="delstr" type="button" value="<删除">
 29             </td>
 30             <td>
 31             <div id="gaineddiv" style="border:solid;width:150;height:340px">
 32                  <input type="checkbox" autocomplete="off" value="10001" name="gained"/><span>箱包</span><br/>
 33                 <input type="checkbox" autocomplete="off" value="10002" name="gained"/><span>3C数码</span><br/>
 34                 <input type="checkbox" autocomplete="off" value="10003" name="gained"/><span>美妆</span><br/>
 35                 <input type="checkbox" autocomplete="off" value="1004" name="gained"/><span>彩票</span><br/>
 36                   <input type="checkbox" autocomplete="off" value="10005" name="gained"/><span>百货</span><br/>
 37             </div>
 38             </td>
 39          </tr>
 40       </table>
 41       <div align="center">
 42       <input align="center" type="button" value="关闭" /><input id="confirm" type="button" value="确定"/>
 43       </div>
 44       <div>
 45       <form id="changedstr" action="cataca.action">
 46       <input id="ch" type="hidden" value="" /><br/>
 47
 48       </form>
 49    </body>
 50 <script>
 51    $(document).ready(function(){
 52      var addstr="";
 53      var delstr="";
 54      $("#addstr").click(function(){
 55
 56           var obj=$("input[type=checkbox][name=leaved]:checked");
 57           var count=obj.length;
 58
 59           for(var i=0;i<count;i++){
 60
 61               $("#gaineddiv").append("<input type=‘checkbox‘ value=‘"+obj[i].value+"‘ name=‘gained‘/><span>"+$(obj[i]).next().html()+"</span><br/>");
 62               var objvalue=obj[i].value;
 63               $(obj[i]).next().next().remove();
 64               $(obj[i]).next().remove();
 65               $(obj[i]).remove();
 66               if(delstr.indexOf(objvalue)>-1){
 67                             delstr=delstr.replace(objvalue+"~","");
 68                             }else{
 69                                addstr=addstr+objvalue+"~";
 70                             }
 71
 72
 73           }
 74
 75      })
 76      $("#delstr").click(function(){
 77           var obj=$("input[type=checkbox][name=gained]:checked");
 78           var count=obj.length;
 79
 80           for(var i=0;i<count;i++){
 81
 82               $("#leavediv").append("<input type=‘checkbox‘ value=‘"+obj[i].value+"‘ name=‘leaved‘/><span>"+$(obj[i]).next().html()+"</span><br/>");
 83               var objvalue=obj[i].value;
 84               $(obj[i]).next().next().remove();
 85               $(obj[i]).next().remove();
 86               $(obj[i]).remove();
 87               if(addstr.indexOf(objvalue)>-1){
 88                                 addstr=addstr.replace(objvalue+"~","");
 89                                            }else{
 90                                                 delstr=delstr+objvalue+"~";
 91                                                }
 92
 93      }
 94     })
 95
 96
 97           $("#confirm").click(function(){
 98                alert("授权的商品组:"+addstr);
 99                alert("删除的商品组:"+delstr);
100           })
101      })
102 </script>
103 </html>

2业务应用:需要对表格相同的部分进行合并,但后台程序往往无法做到这样的效果,或者即使做到也很复杂

对于内容相同的行进行合并

合并的js相对还是比较难理解的,需要注意的是,js代码必须放在html结尾,否则浏览器会先加载js,js被加载后就好立马执行,但这时页面的表格并未加载完成,js会因为找不到表格的行而不进行任何操作,这样不会有任何效果。

         

                          如上图所示,重复的单元格被合并

Code如下:

 1 <head>
 2      <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
 3      <script src="jquery-1.8.3.js"></script>
 4 </head>
 5 <div id="groupManage">
 6 <table   border="1" cellpadding ="0" cellspacing="0" >
 7     <tr><td>年级</td><td>班级</td><td>姓名</td></tr>
 8     <tr><td>二年级</td><td>二年级(1)班</td><td>小红</td></tr>
 9     <tr><td>二年级</td><td>二年级(2)班</td><td>小明</td></tr>
10     <tr><td>三年级</td><td>三年级(1)班</td><td>花花</td></tr>
11     <tr><td>三年级</td><td>三年级(2)班</td><td>草草</td></tr>
12 </table>
13 </div>
14
15 <script>
16     var grid = $("#groupManage");
17     var rowCount = grid.find("tr").length - 1;
18     var flagRow = grid.find("tr:eq("+rowCount+")").find("td:eq(0)").html();
19     var sp = 0;
20     for(var i = rowCount; i >=0; i--) {
21         var tempRow = grid.find("tr:eq("+i+")");
22         if(flagRow == tempRow.find("td:eq(0)").html()) {
23             tempRow.find("td:eq(0)").remove();
24         }
25         else {
26             $("<td/>").attr("rowspan", rowCount-i-sp).html(flagRow).prependTo(tempRow.parent().find("tr:eq("+(i+1)+")"));
27             flagRow = tempRow.find("td:eq(0)").html();
28             sp = rowCount-i;
29             if(i != 0) {
30                 tempRow.find("td:eq(0)").remove();
31             }
32           }
33     }
34 </script> 

3实现遮罩层和弹窗效果

写到这不得不讲一个故事,

  联合利华引进了一条香皂包装生产线,结果发现这条生产线有个缺陷:常常会有盒子里没装入香皂。总不能把空盒子卖给顾客啊,他们只得请了一个学自动化的博士后设计一个方案来分拣空的香皂盒。博士后拉起了一个十几人的科研攻关小组,综合采用了机械、微电子、自动化、X射线探测等技术,花了几十万,成功解决了问题。每当生产线上有空香皂盒通过,两旁的探测器会检测到,并且驱动一只机械手把空皂盒推走。 
  中国南方有个乡镇企业也买了同样的生产线,老板发现这个问题后大为发火,找了个小工来说:“你他妈给老子把这个搞定,不然你给老子爬走。”小工很快想出了办法:他花了90块钱在生产线旁边放了一台大功率电风扇猛吹,于是空皂盒都被吹走了。

  抛开故事的瑕疵不论,这个故事告诉我们要化繁为简,用简单的方法去实现目的,达到效果。

我写弹框的时候就是这样,当时千方百计想要通过 jquery 去创建一个弹框对象,后来发现用window.open()方法更加方便快捷,这种方法实际上是打开另外一个浏览器窗口叠加在原窗口上,并不是本页面的弹框,但确足够好用

js代码:

window.open (‘${ctx}/emailTmpl/queryEmailTmplForMass.do‘, ‘newwindow‘, ‘left=400,top=150,height=400,width=800,resizable=yes,scrollbars=yes‘);

  

时间: 2024-10-17 02:09:01

jquery实现页面交互的几个小例子的相关文章

单列模式下的数据库连接与Servlet之间页面访问用户登录的小例子

下面是我自己写的一个关于servlet的例子 首先是数据库配置,使用的是静态的单例模式 代码如下: / 数据库地址连接 // 使用静态单列模式 public class JdbcUtil { private static String driverName; private static String url; private static String username; private static String password; private static Properties pro

继承方法给页面加上Session判断的小例子

新建一个继承自System.Web.UI.Page的类,然后重写OnInit: using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControl

一个在页面内追加元素的小例子

如下: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <div id="Cnt-Main-Article-QQ" bosszone="content"> <p class=&

jQuery实现页面内锚点平滑跳转

平时我们做导航滚动到内容都是通过锚点来做,刷的一下就直接跳到内容了,没有一丝的滚动效果,而且 url 链接最后会有“小尾巴”,就像#keleyi,今天我就介绍一款 jquery 做的滚动的特效,既可以设置滚动速度,又可以在 url 链接上没有“小尾巴”. 效果体验:http://keleyi.com/keleyi/phtml/jqtexiao/37.htm HTML文件代码: <!DOCTYPE html> <html> <head> <meta charset=

基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式

在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交,方便页面和服务器后端进行数据的交互处理.本文主要介绍利用Jquery处理数据交互的几种方式,包括获取数据并显示,插入新数据到服务器,更新数据,删除数据等操作. 1.利用Jquery获取数据并显示 为了顺利获取数据,我们需要保持页面端调用和服务器端保持一致,并相应的把数据转换或者封装为对象实体进行处理. 下面我们以一个简单的全国省份.全国城市.全国城市行政区的案例进行Demo代码的介绍.   总

基于MVC+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式

在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交,方便页面和服务器后端进行数据的交互处理.本文主要介绍利用Jquery处理数据交互的几种方式,包括获取数据并显示,插入新数据到服务器,更新数据,删除数据等操作. 1.利用Jquery获取数据并显示 为了顺利获取数据,我们需要保持页面端调用和服务器端保持一致,并相应的把数据转换或者封装为对象实体进行处理. 下面我们以一个简单的全国省份.全国城市.全国城市行政区的案例进行Demo代码的介绍.   总

使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 页面事件与 deferred

在系列的上一篇文章<使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 事件详解>中,Kayo 介绍了除页面事件外的其他 jQuery Mobile 事件,而页面事件由于事件数较多,并且涉及 jQuery 中一个比较复杂的对象 deferred ,因此在本文中单独说明.jQuery Mobile 页面事件使用分为页面加载事件 (Page load events),页面跳转事件 (Page change events),页面显示/隐藏事件 (

JQuery 实现页面无刷新

对于JQuery实现页面无刷新的效果,即:应用这个JQuery这个组件,可以实现在页面上加载数据库中的数据信息,但是并没有给用户页面刷新的感觉,这样既可以有效的进行数据交互,也可以不妨碍用户的其他操作.(http://itred.cnblogs.com    itRed: [email protected]) 在用JQuery实现页面无刷新的效果之前,我们需要掌握和了解一些基础知识,以方便我们在进行代码编写时更加的得心应手. 一.异步技术 浏览器预设是使用同步的方式发出请求并等待回应,为了处理浏

PHP入门(7)PHP与Web页面交互

PHP提供了两种与Web页面交互的方式 通过Web表单提交数据 通过URL参数传递 首先谈以下通过表单与web页面交互 <form name="" method="post|get" action="url"></form> 表单的提交方式有两种post get,通过form的method指定 post:将表单中的数据作为一个数据块发送到服务器上的处理程序.这种方法较为安全,数据是附加在header的头信息中,用户不能随意