jQuery事件处理、动画、Ajax

一、jQuery的事件

方法

描述

bind()

向匹配元素附加一个或更多事件处理器

blur()

触发、或将函数绑定到指定元素的 blur 事件

change()

触发、或将函数绑定到指定元素的 change 事件

click()

触发、或将函数绑定到指定元素的 click 事件

dblclick()

触发、或将函数绑定到指定元素的 double click 事件

delegate()

向匹配元素的当前或未来的子元素附加一个或多个事件处理器

die()

移除所有通过 live() 函数添加的事件处理程序。

error()

触发、或将函数绑定到指定元素的 error 事件

event.isDefaultPrevented()

返回 event 对象上是否调用了 event.preventDefault()。

event.pageX

相对于文档左边缘的鼠标位置。

event.pageY

相对于文档上边缘的鼠标位置。

event.preventDefault()

阻止事件的默认动作。

event.result

包含由被指定事件触发的事件处理器返回的最后一个值。

event.target

触发该事件的 DOM 元素。

event.timeStamp

该属性返回从 1970 年 1 月 1 日到事件发生时的毫秒数。

event.type

描述事件的类型。

event.which

指示按了哪个键或按钮。

focus()

触发、或将函数绑定到指定元素的 focus 事件

keydown()

触发、或将函数绑定到指定元素的 key down 事件

keypress()

触发、或将函数绑定到指定元素的 key press 事件

keyup()

触发、或将函数绑定到指定元素的 key up 事件

live()

为当前或未来的匹配元素添加一个或多个事件处理器

load()

触发、或将函数绑定到指定元素的 load 事件

mousedown()

触发、或将函数绑定到指定元素的 mouse down 事件

mouseenter()

触发、或将函数绑定到指定元素的 mouse enter 事件

mouseleave()

触发、或将函数绑定到指定元素的 mouse leave 事件

mousemove()

触发、或将函数绑定到指定元素的 mouse move 事件

mouseout()

触发、或将函数绑定到指定元素的 mouse out 事件

mouseover()

触发、或将函数绑定到指定元素的 mouse over 事件

mouseup()

触发、或将函数绑定到指定元素的 mouse up 事件

one()

向匹配元素添加事件处理器。每个元素只能触发一次该处理器。

ready()

文档就绪事件(当 HTML 文档就绪可用时)

resize()

触发、或将函数绑定到指定元素的 resize 事件

scroll()

触发、或将函数绑定到指定元素的 scroll 事件

select()

触发、或将函数绑定到指定元素的 select 事件

submit()

触发、或将函数绑定到指定元素的 submit 事件

toggle()

绑定两个或多个事件处理器函数,当发生轮流的 click 事件时执行。

trigger()

所有匹配元素的指定事件

triggerHandler()

第一个被匹配元素的指定事件

unbind()

从匹配元素移除一个被添加的事件处理器

undelegate()

从匹配元素移除一个被添加的事件处理器,现在或将来

unload()

触发、或将函数绑定到指定元素的 unload 事件

绑定事件

bind:问题①隐式迭代:把匹配的标签都绑定一个事件,造成性能低

②对于尚未存在的标签,无法绑定事件

示例:

$(“div p”).bind(“click”,function(){

console.log($(this).text())

})

移除bind绑定的事件:$(“div p”).unbind(“click”)

delegate:采用的是事件委托的概念,bind要好,问题:要是DOM层级比较深,不太好用

示例:

$(“div”).delegate(“p”,”click”,function(){

console.log($(this).text());

})

on基本和delegate原理是一样的(常用方法)

示例:

$(“div”).on(”click”,“p”,function(){

console.log($(this).text());

})

移除on绑定的事件:$(“div”).off(“click”,”p”)

live(基本不用)

one:绑定一次性事件,只绑定一次

示例:$(“#btn2”).one(“click”,function(){

console.log(“******”)

})

总结:①选择器匹配到的元素比较多时,不要用bind()迭代绑定

  ②用id选择器时,可以用bind()

  ③需要给动态添加的元素绑定时,用delegate()或者on()

  ④用delegate()on()方法,dom树不要太深

  ⑤尽量使用on()

二、jQuery事件(模拟用户的触发操作)

trigger():模拟用户触发操作

triggerHandle():trigger()是一样的,与其不同的是,不会导致浏览器同名的默认行为被执行

例子:

$(“btn”).bind(“click”,function(){

console.log(“*****”)

}).trigger(“click”)  //不用鼠标点击,自己执行click事件

三、jQuery事件(模仿悬停事件)

hover(移入函数,移出函数)

示例:$(“btn”).hover(function(){

console.log(“移入”)

},function(){

console.log(“移出”)

})

四、jQuery中的事件处理(事件对象)

$(“btn”).bind(“click”.function(e){

console.log(e)

})

五、jQuery阻止事件冒泡

stopPropagation()

示例:

$(“body”).bind(“click”,function(){

$(this).css(“background-color”,”blue”)

})

$(“#box”).bind(“click”,function(e){

$(this).css(“background-color”,”yellow”)

e.stopPropagation()

})

六、jQuery动画效果(隐藏与显示)

帧动画:setInterval(function(){},1000/24)

①隐藏:hide() //可在括号内加参数,数值表示多久隐藏

示例:$(“#btn1”).click(function(){

$div.hide(2000,function(){   //2000数值表示多久结束,结束后调用函数function

console.log(“动画结束”)

})

})

也可以用hide(“slow”)   //slow对应的值是600

 “normal”  //normal对应的值是400

 “fast”    //fast对应的值是200

②显示:show() //显示中的所带参数也是跟hide差不多

③显示与隐藏切换:toggle()

七、jQuery动画效果(淡入淡出)

fadeOut():淡出效果,参数与隐藏与显示一样

fadeIn():淡入效果

fadeTo(时间,透明度):调节透明度的,位置依然还在

示例:fadeTo(1000,0.1)

八、jQuery动画效果(滑动显示匹配的元素,滑动隐藏匹配的元素,通过高度的变化动态切换元素的可见性)

slideUp():向上隐藏

slideDown():向下显示

slideToggle():一个按键控制隐藏和显示

animate(params[,speed][,callback])

params就是动画移动的路线的设置

例子1

<body style=”position:relative;”

<div id=”box” style=”position:absolute;left:0;top:0”></div>

<script type=”text/javascript”>

var $div = $(“#box”)

$div.animate((left:”200px”),1000)

</script>

</body>

例子2

<body style=”position:relative;”

<div id=”box” style=”position:absolute;left:0;top:0”></div>

<button id=”btn1”>停止</button>

<script type=”text/javascript”>

var $div = $(“#box”)

var a = $div.animate((left:”200px”),1000).delay(1000).animate((top:”100px”),1000)   //接连动作,先向左移动,延迟一秒之后向下移动

$(“#btn1”).click(function(){

a.stop(true,true)   //点击按钮之后会停止动画

})

</script>

</body>

注意:

1.在使用animate()方式时,必须设置元素的定位属性positionrelativeabsolute,元素才能动起来,如果没有明确定义元素的定位属性,并试图使用animate()方法移动元素时,

只会静止不动

2.animate()方法中可以使用属性opacity来设置元素的透明度

3.如果在{left:”400px”}中的400px之前加上”+=”就表示在当前位置累加,”-=”就表示在当前位置累减

停止动画stop()方法

stop(clearQueue,gotoEnd)

clearQueue:表示是否清空尚未执行完的动画队列(值为true时表示清空动画队列)

gotoEnd:表示是否让正在执行的动画直接到达动画结束时的状态(值为true是表示直接到达动画结束时的状态)

注意:参数gotoEnd设置为true时,只能直接到达正在执行的动画的最终状态,并不能达到动画序列所设置的动画的最终状态

判断动画是否在执行

$(“#btn2”).click(function(){

if(a.is(:animated)){

console.log(“*****”)

}

})

九、同源策略

要求动态内容只能阅读与之同源的那些HTTP应答和cookies,而不能阅读来自非同源的内容

同源三大要素:①同协议  ②同域名/ip  ③同端口

十、Ajax

请求方法:

$.ajax{(

type:”get”,   //请求类型

url:””,    //文件网络地址

async:true,   //是否异步的问题(可以不写这个)

data:{},   //data是给服务器发送数据的(一般也不用),提交表单时候用

success: function(data,textStatus){

var d = data[“CATALOG”][“CD”]   //json中获取数据

for (var i =0;i<d.length;i++){   //将数据显示在网页中

var info = d[i]

var $p = $(“<p>”+info[“TITLE”]+”</p>”)

$(“#box”).append($p)    

}

},//此处的success是请求发送成功,服务器并成功返回数据,就调用函数;其中函数中的参数data就是服务器返回的数据

)};

*$.get  $.post 都知识$.ajax的分支

猜你喜欢

转载自blog.csdn.net/weixin_38654336/article/details/80717283