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的状态值进行相应的处理

  

  

  

  

  

原文地址:https://www.cnblogs.com/lnrick/p/9514493.html