2018-07-11 第六十六天 jQuery

简介:

一、jQuery中的事件

1. 绑定事件

方法1click()mousemove()mouseout()mouseover()

方法2bind()  对后来加入的无效;

live() 对后来加入的也有效  在jQuery1.7及之前的版本中使用, 1.9版本中淘汰了;

one() 一次事件绑定;

       trigger() 在每一个匹配的元素上触发某类事件。

 

2. 解除绑定unbind()

不传参表示解除所有事件,

传参表示解除指定的事件

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

<!--网络加载jquery.js-->

<script src="http://apps.bdimg.com/libs/jquery/1.7.0/jquery.js" type="text/javascript" charset="utf-8"></script>

 

<script type="text/javascript">

/*等价于js中的onload*/

//$(document).ready(function() {})

//$(function() {})

//jQuery(function() {})

$(function() {

/*事件的绑定*/

$("#bu1").click(function() {

alert("单击事件的绑定");

})

 

$("#bu1").dblclick(function() {

alert("双击事件的绑定");

})

/******bind事件的绑定*********/

$("#bu2").bind('click'function() {

alert("单击事件的绑定");

})

/*绑定多个事件*/

$("#bu2").bind({

'click'function() {},

dblclickfunction() {},

blurfunction() {}

})

 

/****one事件的绑定***********/

$("#bu3").one("click"function() {

alert("单击一次执行效果");

})

 

/*******trigger事件的使用**************/

$("#bu4").click(function() {

$("#bu1").trigger("click");

$("#bu3").trigger("click");

})

 

$("#bu5").click(function() {

//解绑所有绑定事件

$("#bu1").unbind();

//解绑单个的事件

$("#bu1").unbind("click");

})

 

/***********live方法介绍********************/

$(".bb").click(function() {

alert("live事件的添加");

})

 

$(".bb").bind('click'function() {

alert("live事件的添加");

})

 

$(".bb").live('click'function() {

alert("live事件的添加");

})

 

$("body").append("<input type='button' value='live事件' class='bb' />")

})

</script>

</head>

 

<body>

<input type="button" name="bu1" id="bu1" class="bb" value="单击事件的绑定" />

<input type="button" name="bu2" id="bu2" value="bind事件的绑定" />

<input type="button" name="bu3" id="bu3" value="one事件的绑定" />

<input type="button" name="bu4" id="bu4" value="trigger事件的绑定" />

<input type="button" name="bu4" id="bu5" value="事件的解绑" />

</body>

</html>

 

二、jQuery中的动画

1.显示隐藏:show()--hide(),改变widthheightopacity ;

2.淡入淡出:fadeIn()--fadeOut(),改变opacity

3.滑入滑出:slideDown()--slideUp(),改变height(对于img同时改变heightwidth);

4.隐藏的显示/显示的隐藏:toggle()

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

<script type="text/javascript" src="js/jquery-1.12.3.min.js"></script>

<script type="text/javascript">

$(function() {

$("#bu1").click(function() {

//获得div对象

var div1 $("#div1");

/*隐藏的效果*/

div1.hide(3000);

div1.show(3000);

 

//显示的隐藏-- 隐藏的显示

$("div").toggle(3000);

 

//滑动上

div1.slideUp(3000);

//滑动下

div1.slideDown(3000);

 

//淡出

div1.fadeOut(3000);

//淡入

div1.fadeIn(3000);

})

})

</script>

 

<style>

#div1 {

height: 300px;

background-color: red;

}

#div2 {

height: 300px;

background-color: gold;

}

</style>

</head>

 

<body>

<input type="button" name="bu1" id="bu1" value="动画的测试" />

<div id="div1"></div>

<div id="div2"></div>

</body>

</html>

 

三、jQuery实现表单校验

1.为什么要进行表单验证:保证数据符合要求。

 

2.为什么要进行JavaScript或者jQuery表单验证:降低服务器端负担。

 

3.还可以进行服务器验证(JSP

 

4.正则表达式

推荐两篇文章:

https://www.jb51.net/article/72044.htm

https://www.jb51.net/article/76901.htm

 

(1)为什么使用正则表达式:简洁的代码、严谨的验证文本框中的内容。

 

(2)正则表达式举例:

匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}

匹配腾讯QQ号:[1-9][0-9]{4,}

匹配中国邮政编码:\d{6}

匹配身份证:\d{15}|\d{18}

匹配由数字和26个英文字母组成的字符串 ^[A-Za-z0-9]+$

匹配Email地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

 

(3)什么是正则表达式:

Regular Expression,在代码中常简写为regex

正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。

在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

 

(4)如何创建正则表达式:

var reg=/china/;

var reg=new RegExp(" china ");

 

var reg=/^\w+$/;

var reg=new RegExp("^\w+@\w+.[a-zA-Z]{2,3}(.[a-zA-Z]{2,3})?$";

 

(5)正则表达式中常用的符号和用法:

6正则表达式的重复字符:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

<script src="js/jquery-1.12.3.min.js" type="text/javascript" charset="utf-8"></script>

<script>

/*****验证码产生****************/

function yzm() {

var ran Math.floor(Math.random() 9000 1000);

//document.getElementById("yzm1").innerHTML=ran;

var span document.getElementById("yzm2");

span.innerHTML ran;

}

 

$(function() {

/*********姓名的校验**************/

$("#uname").blur(function() {

 

//姓名的正则表达式 2-4位的汉字

var reg /^[\u4e00-\u9fa5]{2,4}$/;

checkData("uname", reg);

})

 

/**********密码的校验****************/

$("#pwd").blur(function() {

var reg /^\d{4,6}$/;

checkData("pwd", reg);

})

 

/**********邮箱的校验****************/

$("#email").blur(function() {

//邮箱的正则表达式

var reg /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;

 

checkData("email", reg);

})

 

/**********手机的校验****************/

$("#phone").blur(function() {

var reg /^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/;

checkData("phone", reg);

})

 

/**********提取公共的方法***************/

function checkData(idreg) {

 

//获得用户名的值

var us $("#" id);

//获得span对象

var span $("#span_" id);

if(us.val() == "" || us.val() == null) {

span.html("× " us.attr("alt""不能为空").css("color""red").addClass("error");

else if(reg.test(us.val())) {

//符合要求的格式

span.html("√ " us.attr("alt""合法").css("color""green").removeClass();

else {

span.html("× " us.attr("alt""不合法").css("color""red").addClass("error");

}

}

 

/********爱好的校验***************/

$("input[name=fav]").click(function() {

var che $("input[name=fav]:checked");

if(che.length 0) {

$("#span_fav").html("爱好选择成功").css("color""green").removeClass();

else {

$("#span_fav").html("请选择爱好").css("color""red").addClass("error");

}

})

 

/********籍贯的选择***************/

$("#sel").change(function() {

var val $("#sel").val();

if(val == "0") {

$("#span_sel").html("请选择籍贯").css("color""red").addClass("error");

else {

$("#span_sel").html("籍贯选择成功").css("color""green").removeClass();

}

})

 

/********验证码的校验**************/

$("#yzm1").blur(function() {

//[1]随机产生的验证码

var yz $("#yzm2").html();

//[2]输入的值

var yz2 $("#yzm1").val();

if(yz == yz2) {

$("#yzm3").html("验证码输入正确").css("color""green").removeClass();

else {

$("#yzm3").html("验证码输入错误").css("color""red").addClass("error");

}

})

/******同意协议*********/

$("#check").click(function() {

var flag $("#check").prop("checked");

/*if(flag){

$("#sub").prop("disabled",false);

}else {

$("#sub").prop("disabled",true);

}*/

$("#sub").prop("disabled"!flag);

})

/******校验表单的提交***********/

$("form").submit(function() {

$("#uname").trigger("blur");

$("#pwd").trigger("blur");

$("#email").trigger("blur");

$("#phone").trigger("blur");

 

/*执行两次*/

$("input[name=fav]").trigger("click");

$("input[name=fav]").trigger("click");

 

var err $(".error");

if(err.length 0) {

return false;

else {

return true;

}

})

})

</script>

<!--

   正则表达式学习

   ^:开始

   数字:[0-9]

   $:结束

   \d:代表[0-9]

   \w   [0-9][A-Z][a-z]以及下划线   

   {n}:段域

   ^[0-9]{7}$

   ^[0-9]{4,7}$

   ^\w{5}$

   

   快速去除字符串操作

      var  a="abcdefg";

      var jj=/[b|c]/

      while(jj.test(a)){

     a= a.replace(jj,"");

      }

     alert(a);

   -->

</head>

 

<body onload="yzm()">

<center>

<h3>注册页面</h3>

<hr />

<form action="" method="get">

<table>

<tr height="35px">

<td width="150px">用户名:</td>

<td width="400px">

<input type="text" name="uname" id="uname" value="张三三" alt="用户名" />

<span id="span_uname"></span>

</td>

</tr>

<tr height="35px">

<td>密码:</td>

<td>

<input type="password" name="pwd" id="pwd" value="123456" alt="密码" />

<span id="span_pwd"></span>

</td>

</tr>

<tr height="35px">

<td>手机号:</td>

<td>

<input type="text" name="phone" id="phone" value="18231932733" alt="手机号" />

<span id="span_phone"></span>

</td>

</tr>

<tr height="35px">

<td>邮箱:</td>

<td>

<input type="text" name="mail" id="email" value="2767501426@qq.com" alt="邮箱" />

<span id="span_email"></span>

</td>

</tr>

<tr height="35px">

<td>性别:</td>

<td>

男:<input type="radio" name="sex" value="1" /> 女:

<input type="radio" name="sex" value="0" />

</td>

</tr>

<tr height="35px">

<td>爱好:</td>

<td>

<input type="checkbox" name="fav" value="1" />唱歌

<input type="checkbox" name="fav" value="2" />睡觉

<input type="checkbox" name="fav" value="3" />LOL<br />

<input type="checkbox" name="fav" value="4" />旅游

<input type="checkbox" name="fav" value="5" />高尔夫

<input type="checkbox" name="fav" value="6" />篮球

<span id="span_fav"></span>

</td>

</tr>

<tr height="35px">

<td>籍贯:</td>

<td>

<select name="adress" id="sel">

<option value="0">--请选择--</option>

<option value="1">安徽</option>

<option value="2">北京</option>

<option value="3">上海</option>

<option value="4">山东</option>

<option value="5">天津</option>

</select>

<span id="span_sel"></span>

</td>

</tr>

 

<tr height="35px">

<td>验证码:</td>

<td>

<input type="text" style="width: 100pxheight: 60px;id="yzm1" />

<span id="yzm2" onclick="yzm()"></span>

<span id="yzm3"></span>

</td>

</tr>

 

<tr height="35px">

<td>个人介绍:</td>

<td>

<textarea name="intro" rows="8" cols="30"></textarea>

</td>

</tr>

 

<tr height="35px">

<td colspan="2" align="center">

<input type="checkbox" name="" id="check" value="">是否同一本公司协议

</td>

</tr>

<tr height="35px">

<td colspan="2" align="center">

<input type="submit" id="sub" value="注册" disabled="true" />

</td>

</tr>

</table>

</form>

</center>

</body>

</html>

 

四、jQuery实现树形菜单

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>树形菜单-1</title>

<script type="text/javascript" src="js/jquery-1.12.3.min.js" ></script>

<style type="text/css">

div {

font-size: 12px;

color: #000000;

line-height: 22px;

}

img {

vertical-align: middle;

}

a {

font-size: 13px;

color: #000000;

text-decoration: none;

}

a:hover {

font-size: 13px;

color: #999999

}

.red {

color: #FF0000

}

</style>

<script type="text/javascript">

$(function() {

 

$(".fir").click(function() {

//parent() 获得父节点对象 next() 得到下一个节点

var dis $(this).parent().next().css("display");

 

if(dis == "none") {

$(this).parent().next().css("display""block");

children() 获得子节点

$(this).children().attr("src""img/minus.gif");

else {

$(this).parent().next().css("display""none");

find() 查找到指定的节点

$(this).find("img").attr("src""img/plus.gif");

}

})

})

</script>

</head>

 

<body>

<div id="div1" style="padding-left:100px;">

<div>

<href="javascript:void(0)" class="fir"><img src="img/plus.gif" border="0">分类讨论区</a>

</div>

<div id="1" style="display: nonepadding-left:15px;"><img src="img/z-top.gif">BBS 系统

<BR><img src="img/z-top.gif">共建水木

<BR><img src="img/z-top.gif">站务公告栏

<BR><img src="img/z-top.gif">妆点水木

<BR><img src="img/z-end.gif">申请版主

</div>

 

<div>

<href="javascript:void(0)" class="fir"><img src="img/plus.gif" border="0">分类讨论区</a>

</div>

<div id="2" style="display: nonepadding-left:15px;"><img src="img/z-top.gif">BBS 系统

<BR><img src="img/z-top.gif">共建水木

<BR><img src="img/z-top.gif">站务公告栏

<BR><img src="img/z-top.gif">妆点水木

<BR><img src="img/z-end.gif">申请版主

</div>

 

<div>

<href="javascript:void(0)" class="fir"><img src="img/plus.gif" border="0">分类讨论区</a>

</div>

<div id="3" style="display: nonepadding-left:15px;"><img src="img/z-top.gif">BBS 系统

<BR><img src="img/z-top.gif">共建水木

<BR><img src="img/z-top.gif">站务公告栏

<BR><img src="img/z-top.gif">妆点水木

<BR><img src="img/z-end.gif">申请版主

</div>

</div>

</body>

</html>

 

五、Query中的框架--图片放大器插件

https://www.oschina.net/p/jqzoom

官方网址:https://jquery-plugins.net/jqzoom

 

jQZoom是一个基于最流行的jQuery的图片放大器插件。它功能强大,使用简便。

支持标准模式、反转模式、无镜头、无标题的放大,并可以自定义jQZoom的窗口位置和渐隐效果,修正IE6的select bug。

 

配置参数

· zoomType,默认值:’standard’,另一个值是’reverse’,是否将原图用半透明图层遮盖。

· zoomWidth,默认值:200,放大窗口的宽度。

· zoomHeight,默认值:200,放大窗口的高度。

· xOffset,默认值:10,放大窗口相对于原图的x轴偏移值,可以为负。

· yOffset,默认值:0,放大窗口相对于原图的y轴偏移值,可以为负。

· position,默认值:’right’,放大窗口的位置,值还可以是:’right’ ,’left’ ,’top’ ,’bottom’

· lens,默认值:true,若为false,则不在原图上显示镜头。

· imageOpacity,默认值:0.2,当zoomType的值为’reverse’时,这个参数用于指定遮罩的透明度。

· title,默认值:true,在放大窗口中显示标题,值可以为a标记的title值,若无,则为原图的title值。

· showEffect,默认值:’show’,显示放大窗口时的效果,值可以为: ‘show’ ,’fadein’

· hideEffect,默认值:’hide’,隐藏放大窗口时的效果: ‘hide’ ,’fadeout’

· fadeinSpeed,默认值:’fast’,放大窗口的渐显速度(选项: ‘fast’,'slow’,'medium’)。

· fadeoutSpeed,默认值:’slow’,放大窗口的渐隐速度(选项: ‘fast’,'slow’,'medium’)。

· showPreload,默认值:true,是否显示加载提示Loading zoom(选项: ‘true’,'false’)。

· preloadText,默认值:’Loading zoom’,自定义加载提示文本。

· preloadPosition,默认值:’center’,加载提示的位置,值也可以为’bycss’,以通过css指定位置。


目录
相关文章
|
JavaScript
jQuery toggleClass()
jQuery toggleClass()
63 0
|
7月前
|
JavaScript UED 开发者
jQuery Growl
jQuery Growl 是一个基于 jQuery 的通知插件,它可以在网页上显示各种类型的通知,如成功、错误、警告等。Growl 插件基于 jQuery UI 主题,可以自定义通知的样式、位置和显
119 6
|
JavaScript
jQuery_01
jQuery_01
49 0
|
Web App开发 设计模式 JavaScript
jquery
jquery
64 0
|
JavaScript 前端开发 程序员
|
前端开发 JavaScript
Html+Css+jquery 2021/11/1
Html+Css+jquery 2021/11/1
85 0
Html+Css+jquery 2021/11/1
|
存储 JavaScript 前端开发
三天轻松搞定JQuery
三天轻松搞定JQuery
123 0
三天轻松搞定JQuery
|
JSON JavaScript 前端开发
|
Java
2019 年了,为什么我还在用 jQuery?
许多人都在提倡: “直接用原生的 JavaScript 就好了,不需要 jQuery 了”。
1156 0
|
Web App开发 JSON JavaScript