jQuery库-事件

这是我参与8月更文挑战的第14天,活动详情查看: 8月更文挑战

事件处理

事件绑定

eventName(function(){}):绑定对应事件名的监听

$("div").click(function(){})
复制代码

on(eventName,function(){}):通用的绑定事件监听

$("div").on("click",function(){})
复制代码

优缺点:

  • eventName(function(){})编码方便,但只能加一个监听,而且有的监听事件不支持
  • on(eventName,function(){})编码不方便,可以添加多个监听,且更通用

事件解绑:off(eventName)

事件的坐标

  • event.clientX,event.clientY:相对于视口的左上角
  • event.pageX,event.pageY:相对于页面的左上角
  • event.offsetX,event.offsetY:相对于事件元素的左上角

事件相关处理

  • event.stopPropagation():停止事件冒泡
  • event.preventDefault():组织事件默认行为

补充:如何区分mouseover与mouseenter?

mouseover:在移入子元素时也会触发绑定事件,对应mouseout

mouseenter:只有当移入当前元素时才会触发事件,对应mouseleave

事件委托

将多个子元素的事件监听委托给父辈元素处理,监听回调函数是加载在父辈元素上的。当我们操作任意一个子元素时,事件会冒泡到父辈元素。父辈元素不会直接处理事件,而是根据event.target得到发生事件的子元素,通过这个子元素调用事件回调函数。

这样做的好处是即使我们在父元素中添加新的子元素,这个子元素也会自动拥有事件响应处理;同时这样也减少了事件监听的数量,我们不需要为每一个子元素绑定事件监听。

事件委托API

  • $(parentSelector).delegate(childrenSelector,eventName,callback):设置事件委托
  • $(parentSelector).undelegate(eventName):移除事件委托

动画

淡入淡出

  • fadeIn():带动画的显示
  • fadeOut():带动画的隐藏
  • fadeToggle():带动画的切换显示/隐藏

滑动动画

  • slideDown():带动画的展开
  • slideUp():带动画的收缩
  • slideToggle():带动画的切换展开/收缩

显示隐藏,默认没有动画

  • show():(不)带动画的显示
  • hide():(不)带动画的隐藏
  • toggle():(不)带动画的切换显示/隐藏

onload跟ready的区别

window.onload

  • 包括页面的图片加载完才会回调
  • 只能有一个监听回调

$(document).ready()

  • 等同于:$(function(){}),页面加载完毕就回调
  • 可以有多个监听回调

jQuery扩展插件

扩展jQuery的工具方法:$extend(object)

扩展jQuery对象的方法:$fn.extend(object)

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享