zoukankan      html  css  js  c++  java
  • jq3

    事件流:

      dom2级事件流

      三个阶段:

        1,捕获阶段

        2,处于目标节点

        3,冒泡阶段

          event.prventDefaut

          event.stopPropagattion

          return false

       2,固定导航栏

         位置信息

          offset().stop

          scrollTop()

          scroll(fn)

       3,数据流

        单向数据绑定data ===>view

        双向数据绑定data===>view==>data

       4,单双击的问题 300ms 加定时器

       5,事件对象: event

        event.target:目标对象   吃蛋糕的人

        event.currentTarget:当前对象 this 谁动了蛋糕

       6,jquery事件

         click:单击事件

         mouseover|mouseout 穿过被选元素或被选的子元素

         mouseenter|mouseleave 只穿过被选元素

         js中的oninput:实时监听input输入框的输入

         watcher?

         from 表单的submit事件

         阻止from表单的默认行为

    事件的绑定和解绑 bind 和 unbind   在解绑之后不会执行

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title></title>
    </head>
    <body>
    	<div>123</div>
    
    	<button>解绑</button>
    	<script src="jquery.js"></script>
    	<script>
    		
    		$(function () {
    
    			$('div').bind('click',function () {
    				console.log(this.innerText);
    			})
    
    			$('button').click(function(event) {
    				$('div').unbind();
    			});
    		})
    	</script>
    </body>
    </html>
    

    事件的委托:解决事件在后输入后不能执行的情况:以下事件为解决li的后加入执行click

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title></title>
    </head>
    <body>
    
    	<ul>
    		<li>alex</li>
    		<li>tailiang</li>
    	</ul>
    	<script src="jquery.js"></script>
    	<script>
    		$(function () {
    			
    			// $('ul li').click(function(event) {
    			// 	 Act on the event 
    			// 	alert($(this).text());
    			// });
    
    			// 事件委托去处理
    
    			$('ul').on('click','li',function () {
    				// body... 
    				alert($(this).text());
    			})
    
    
    
    			// bind   on
    
    			// 未来发生的事情
    
    			$('ul').append('<li class="a">俊杰</li>');
    
    
    
    
    
    
    
    
    
    
    		})
    
    	</script>
    	
    </body>
    </html>
    

    XMLHttpRequest:流程需要记住

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title></title>
    </head>
    <body>
    	<button id='btn'>发送ajax</button>
    	<script src="jquery.js"></script>
    	<script>
    
    		
    			//(1)创建XMLHttpRequest对象
    			var xhr = new  XMLHttpRequest();
    
    
    			// 0 初始化操作 之创建XMLHttpRequest对象
    			console.log(xhr.readyState);
    
    			// 2.状态机
    			xhr.onreadystatechange = function (event) {
    				console.log(xhr.readyState);
    
    				switch (xhr.readyState) {
    					case 4:
    						//响应数据成功
    						console.log(xhr.responseText);
    						break;
    					default:
    						// statements_def
    						break;
    				}
    			}
    
    			document.getElementById('btn').onclick = function () {
    
    				// 3.打开网址
    				xhr.open('GET','http://localhost:8800/course',true);
    
    				//4.发送请求体的数据
    				xhr.send();		
    			}
    
    
    
    
    		
    		
    	</script>
    	
    </body>
    </html>
    

    jq中的aiax代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title></title>
    </head>
    <body>
    	<input type="text">
    	<button>提交</button>
    	<div class="box">
    		<ul>
    			
    		</ul>
    	</div>
    
    	<div>
    		
    	</div>
    	<script src="jquery.js"></script>
    	
    	<script>
    		/*		
    		$.ajax({
    			url:'http://localhost:8800/course',
    			type:'get',
    			dataType:'json',
    			success:function (data) {
    				console.log(data);
    				$('body').html(data.name);
    			},
    			error:function (err) {
    				console.log(err)
    			}
    		});
    		*/
    		
    
    		$('button').click(function(event) {
    
    				var nameVal = $('input').val();
    				$.ajax({
    					url:'http://localhost:8800/create',
    					type:'post',
    					dataType:'json',
    					data:{
    						name:nameVal
    					},
    					success:function (data) {
    						console.log(data);
    							// $('ul').empty();
    						
    							data.forEach(function (item,index) {
    								console.log(item);
    								$('<li></li>').appendTo('.box ul').text(item.name);
    
    
    							
    							})
    
    						
    						
    						
    					},
    					error:function (err) {
    						console.log(err)
    					}
    				});
    			
    		});
    		
    	</script>
    </body>
    </html>
    

    js中的农历日历:网上找的

    $(function () {
    
    
    var CalendarData=new Array(100);
    var madd=new Array(12);
    var tgString="甲乙丙丁戊己庚辛壬癸";
    var dzString="子丑寅卯辰巳午未申酉戌亥";
    var numString="一二三四五六七八九十";
    var monString="正二三四五六七八九十冬腊";
    var weekString="日一二三四五六";
    var sx="鼠牛虎兔龙蛇马羊猴鸡狗猪";
    var cYear,cMonth,cDay,TheDate;
    CalendarData = new Array(0xA4B,0x5164B,0x6A5,0x6D4,0x415B5,0x2B6,0x957,0x2092F,0x497,0x60C96,0xD4A,0xEA5,0x50DA9,0x5AD,0x2B6,0x3126E, 0x92E,0x7192D,0xC95,0xD4A,0x61B4A,0xB55,0x56A,0x4155B, 0x25D,0x92D,0x2192B,0xA95,0x71695,0x6CA,0xB55,0x50AB5,0x4DA,0xA5B,0x30A57,0x52B,0x8152A,0xE95,0x6AA,0x615AA,0xAB5,0x4B6,0x414AE,0xA57,0x526,0x31D26,0xD95,0x70B55,0x56A,0x96D,0x5095D,0x4AD,0xA4D,0x41A4D,0xD25,0x81AA5,0xB54,0xB6A,0x612DA,0x95B,0x49B,0x41497,0xA4B,0xA164B, 0x6A5,0x6D4,0x615B4,0xAB6,0x957,0x5092F,0x497,0x64B, 0x30D4A,0xEA5,0x80D65,0x5AC,0xAB6,0x5126D,0x92E,0xC96,0x41A95,0xD4A,0xDA5,0x20B55,0x56A,0x7155B,0x25D,0x92D,0x5192B,0xA95,0xB4A,0x416AA,0xAD5,0x90AB5,0x4BA,0xA5B, 0x60A57,0x52B,0xA93,0x40E95);
    madd[0]=0;
    madd[1]=31;
    madd[2]=59;
    madd[3]=90;
    madd[4]=120;
    madd[5]=151;
    madd[6]=181;
    madd[7]=212;
    madd[8]=243;
    madd[9]=273;
    madd[10]=304;
    madd[11]=334;
    
    function GetBit(m,n){
    return (m>>n)&1;
    }
    function e2c(){
    TheDate= (arguments.length!=3) ? new Date() : new Date(arguments[0],arguments[1],arguments[2]);
    var total,m,n,k;
    var isEnd=false;
    var tmp=TheDate.getYear();
    if(tmp<1900){
     tmp+=1900;
    }
    total=(tmp-1921)*365+Math.floor((tmp-1921)/4)+madd[TheDate.getMonth()]+TheDate.getDate()-38;
    
    if(TheDate.getYear()%4==0&&TheDate.getMonth()>1) {
     total++;
    }
    for(m=0;;m++){
     k=(CalendarData[m]<0xfff)?11:12;
     for(n=k;n>=0;n--){
    if(total<=29+GetBit(CalendarData[m],n)){
     isEnd=true; break;
     }
     total=total-29-GetBit(CalendarData[m],n);
     }
     if(isEnd) break;
    }
    cYear=1921 + m;
    cMonth=k-n+1;
    cDay=total;
    if(k==12){
     if(cMonth==Math.floor(CalendarData[m]/0x10000)+1){
     cMonth=1-cMonth;
     }
    if(cMonth>Math.floor(CalendarData[m]/0x10000)+1){
     cMonth--;
     }
    }
    }
    
    function GetcDateString(){
    var tmp="";
    // tmp+=tgString.charAt((cYear-4)%10);
    // tmp+=dzString.charAt((cYear-4)%12);
    // tmp+="(";
    // tmp+=sx.charAt((cYear-4)%12);
    // tmp+=")年 ";
    if(cMonth<1){
    tmp+="(闰)";
    tmp+=monString.charAt(-cMonth-1);
    }else{
     tmp+=monString.charAt(cMonth-1);
    }
    tmp+="月";
    tmp+=(cDay<11)?"初":((cDay<20)?"十":((cDay<30)?"廿":"三十"));
    if (cDay%10!=0||cDay==10){
     tmp+=numString.charAt((cDay-1)%10);
    }
    return tmp;
    }
    
    function GetLunarDay(solarYear,solarMonth,solarDay){
    //solarYear = solarYear<1900?(1900+solarYear):solarYear;
    if(solarYear<1921 || solarYear>2020){
    return "";
    }else{
     solarMonth = (parseInt(solarMonth)>0) ? (solarMonth-1) : 11;
     e2c(solarYear,solarMonth,solarDay);
     return GetcDateString();
    }
    }
    
    var D=new Date();
    var yy=D.getFullYear();
    var mm=D.getMonth()+1;
    var dd=D.getDate();
    var ww=D.getDay();
    var ss=parseInt(D.getTime() / 1000);
    if (yy<100) yy="19"+yy;
    function showCal(){
       return GetLunarDay(yy,mm,dd);
    }
    
    
    $(".lunar-festival").text(`农历   ${showCal()}`);
    
    });
    

    对时间的处理  

    var myDate = new Date();
    
    myDate.getYear(); //获取当前年份(2位)
    
    myDate.getFullYear(); //获取完整的年份(4位,1970-????)
    
    myDate.getMonth(); //获取当前月份(0-11,0代表1月)         // 所以获取当前月份是myDate.getMonth()+1; 
    
    myDate.getDate(); //获取当前日(1-31)
    
    myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
    
    myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
    
    myDate.getHours(); //获取当前小时数(0-23)
    
    myDate.getMinutes(); //获取当前分钟数(0-59)
    
    myDate.getSeconds(); //获取当前秒数(0-59)
    
    myDate.getMilliseconds(); //获取当前毫秒数(0-999)
    
    myDate.toLocaleDateString(); //获取当前日期
    
    var mytime=myDate.toLocaleTimeString(); //获取当前时间
    
    myDate.toLocaleString( ); //获取日期与时间
    
     
    
    ==========================================================================
    
     
    
    JS获取当前时间戳的方法-JavaScript 获取当前毫秒时间戳有以下三种方法:
    
     
    
    var timestamp =Date.parse(new Date());    结果:1280977330000       //不推荐; 毫秒改成了000显示
    
     
    
    var timestamp =(new Date()).valueOf();       结果:1280977330748       //推荐; 
    
     
    
    var timestamp=new Date().getTime();         结果:1280977330748        //推荐; 
    
     
    
     
    
     
    
    js中单独调用new Date();  显示这种格式  Mar 31 10:10:43 UTC+0800 2012
    
     
    
    但是用new Date() 参与计算会自动转换为从1970.1.1开始的毫秒数
    
     
    
    --------------------------------------------------------------------------------------------------
    
     
    
    将字符串形式的日期转换成日期对象
    
     
    
    var strTime="2011-04-16";    //字符串日期格式           
    
    var date= new Date(Date.parse(strTime.replace(/-/g,  "/")));      //转换成Data();
    
     
    
    --------------------------------------------------------------------------------------------------
    
     
    
    new Date() ;     //参数可以为整数; 也可以为字符串; 但格式必须正确
    
     
    
    new Date(2009,1,1);       //正确
    
     
    
    new Date("2009/1/1");    //正确
    
     
    
    new Date("2009-1-1");    //错误
    
     
    
    new Date( year, month, date, hrs, min, sec)  按给定的参数创建一日期对象
    
      参数说明:
    
      year的值为:需设定的年份-1900。例如需设定的年份是1997则year的值应为97,即1997-1900的结果。所以Date中可设定的年份最小为1900;
    
      month的值域为0~11,0代表1月,11表代表12月;
    
      date的值域在1~31之间;
    
      hrs的值域在0~23之间。从午夜到次日凌晨1点间hrs=0,从中午到下午1点间hrs=12;
    
      min和sec的值域在0~59之间。
    
      例 Date day=new Date(11,3,4);
    
      //day中的时间为:04-Apr-11 12:00:00 AM
    
     
    
     
    
           另外,还可以给出不正确的参数。
    
      例 设定时间为1910年2月30日,它将被解释成3月2日。
    
      Date day=new Date(10,1,30,10,12,34);
    
      System.out.println("Day's date is:"+day);
    
      //打印结果为:Day's date is:Web Mar 02 10:13:34 GMT+08:00 1910
    
    --------------------------------------------------------------------------------------------------
    

    转星期

     var mydate = new Date(day1.date.replace('-',',')).getDay();
                        var mydateone = ["日","一","二","三","四","五","六"];
                        for(var i=0;i<7;i++){
                            if(mydate == i){
                                mydate = mydateone[i]
                            }
                        }
    

    XMLHttpRequest对象属性(接收并显示当前状态)

    1.readySate-记录返回请求的状态

    。0-为初始化:对象已经建立,单位初始化,open方法还未调用;

    。1-初始化:对象已经建立,但还未调用send方法发送请求;

    。2-发送数据:send方法已调用,但HTTP头未知;

    。3-数据传输中:已经接受部分数据,但响应不完全;

    。4-完成:数据接受完成,此时才可以获取完整的返回数据

    2.responseText-接收客户端的HTTP响应的文本内容

    。只读

    。当readySate为1/2,responseText值是一个空字符串;

    。当readyState为3,响应信息正在接受还未完成;

    。当readyState为4,表示可以响应信息已经接收完成

    。xmlHttp默认响应数据编码为UTF-8

    3.responseXML-在send()执行后,将返回的信息格式化为XML Document对象

    。Content-Type指定的MIME类型应该为text/HTML

    。如果Content-Type不包含这种类型,responseXML在接收时将会得到一个null值

    4.status-在send()执行后,可使用status读取事物状态

    。长整型数据

    。返回当前请求的HTTP的状态码

    。只有当readyState为3或4时才使用该属性,否则读取status会发生错误

    。100-客户必须继续发送请求

    。200-交易成功

    。400-错误请求

    。403-请求不允许

    。404-没有发现文件、查询、URL

    。500-服务器内部错误

    。502服务器暂时不可使用

    。505-服务器不支持或拒绝不支持请求头中的HTTP版本

    5.statusText-send()执行后,可通过statusText读取事物状态

    。返回当前HTTP请求的状态行

    。只有当readyState为3或4时才可使用该属性,否则读取state会发生错误

    6.Onreadystatechange-readyState发生变化时所要执行的操作

    。通常将处理函数名称赋予onreadystatechange来为XMLHttpRequest对象指定事件处理

    。在事件处理函数中根据readyState的状态值进行相应的处理

      

      

      

      

      

  • 相关阅读:
    设计模式基础:类及类关系的UML表示
    SQL 经典语句
    网络存储
    jstack Dump
    Windows上模拟Linux环境的软件Cygwin
    竞争条件
    Java volatile关键字
    java原子操作
    java死锁小例子
    死锁四个必要条件
  • 原文地址:https://www.cnblogs.com/lnrick/p/9514493.html
Copyright © 2011-2022 走看看