2018-07-11 第六十六天 jQuery

1、jQuery中的事件javascript

  1. 綁定事件

方法1:click()、mousemove()、mouseout()、mouseover();css

方法2:bind() 對後來加入的無效;html

live() 對後來加入的也有效 在jQuery1.7及以前的版本中使用, 1.9版本中淘汰了;java

one() 一次事件綁定;jquery

trigger() 在每個匹配的元素上觸發某類事件。
  1. 解除綁定unbind():

不傳參表示解除全部事件,正則表達式

傳參表示解除指定的事件服務器

<!DOCTYPE html>網絡

<html>app

<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() {}, dblclick: function() {}, blur: function() {} }) /****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>

2、jQuery中的動畫

1.顯示隱藏:show()--hide(),改變width、height、opacity ;

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

3.滑入滑出:slideDown()--slideUp(),改變height(對於img同時改變height和width);

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>

3、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(id, reg) { //得到用戶名的值 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: 100px; height: 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>

4、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>

<a href="javascript:void(0)" class="fir"><img src="img/plus.gif" border="0">分類討論區</a>

</div>

<div id="1" style="display: none; padding-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>

<a href="javascript:void(0)" class="fir"><img src="img/plus.gif" border="0">分類討論區</a>

</div>

<div id="2" style="display: none; padding-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>

<a href="javascript:void(0)" class="fir"><img src="img/plus.gif" border="0">分類討論區</a>

</div>

<div id="3" style="display: none; padding-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>

5、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指定位置。

相關文章
相關標籤/搜索