前端培训-中级阶段(6)- jQuery 的事件绑定链式操作及原理(2019-7-25期)

简介: 前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中心思想,我们开课啦(每周四)。

主要内容



  1. jQuery 事件(绑定,解绑,委托,触发)


  1. jQuery 链式操作


jQuery 事件



绑定事件 on(events,[selector],[data],fn)


我比较习惯直接使用$('div').on(events,fn)来实现绑定事件。


on()方法绑定事件处理程序到当前选定的jQuery对象中的元素。在jQuery 1.7中,.on()方法提供绑定事件处理程序所需的所有功能。帮助从旧的jQuery事件方法转换,.bind(), .delegate(), 和 .live()


events 可以用写多个事件,比如常见的input的兼容写法$('input').on('input propertychange', fn)


对应原生addEventListener和ie等低版本的兼容。


jQuery 解绑事件 off(events,[selector],[fn])


我比较习惯直接使用$('div').off(events)来实现解绑事件。


off() 方法移除用.on()绑定的事件处理程序。特定的事件处理程序可以被移除元素上提供事件名称,命名空间,处理函数。当有多个过滤参数,所提供的参数都必须匹配的事件处理程序才会被删除。


$('.btn').off('click') 会把所有的click事件都移除。还记得我们原生的移除条件吗?removeEventListener必须把fn也传入进去才可以。那么jQuery怎么实现的呢?他把所有的事件都保存了起来,删除的时候使用保存的引用去删除。


jQuery 事件委托 on(events,selector,[data],fn)


原生的方法为判断event.target来实现。jQuery 封装之后通过传入selector来操作。


selector:用于过滤器的触发事件的选择器元素的后代。如果省略,当事件触发到达选定的元素,事件总是触发。


jQuery 事件触发、模拟触发 trigger(type,[data])


原生使用dispatchEvent触发。


例子:$("form:first").trigger("submit")


其他事件类支持


  1. one() 绑定只触发一次的事件


  1. hover([over,]out) 绑定鼠标hover效果。封装好的mouseovermouseout


  1. 事件封装,我基本都不用。只用onoff


bVbuwE0.webp.jpg


jQuery 链式操作


链式操作真的爽。比如ES6的 new Array(10).fill(1).map((v,i)=>i*2) 我们可以让我的数据经过好几个方法处理一下。

原理其实也比较简单,因为jQuery重点就是封装了DOM,所有的都伪装成数组。让我们很方便的遍历。然后他在每次操作完之后把thisreturn了出来


例子:jsrun地址


//实现了一个,单击打开,移走变透明的效果。
$('#wrap').on('click', function(){
    window.open('https://www.lilnong.top')
}).on('mouseout', function(){
    $('#wrap').animate('opacity', .7)
}).on('mouseover', function(){
    $('#wrap').css('opacity', 1)
})


我们尝试自己来写一个可以链式操作的对象


obj={
   num: 0,
   clear: function(num){
    this.num= 0
    return this;
   },
   add: function(num){
    this.num+=num
    return this;
   }
}


bVbuwG2.webp.jpg

相关文章
|
移动开发 缓存 前端开发
深入理解前端路由:原理、实现与应用
本书《深入理解前端路由:原理、实现与应用》全面解析了前端路由的核心概念、工作原理及其实现方法,结合实际案例探讨了其在现代Web应用中的广泛应用,适合前端开发者和相关技术人员阅读。
|
前端开发 开发者
本文将深入探讨 BEM 的概念、原理以及其在前端开发中的应用
BEM(Block-Element-Modifier)是一种前端开发中的命名规范和架构方法,旨在提高代码的可维护性和复用性。通过将界面拆分为独立的模块,BEM 提供了一套清晰的命名规则,增强了代码的结构化和模块化设计,促进了团队协作。本文深入探讨了 BEM 的概念、原理及其在前端开发中的应用,分析了其优势与局限性,为开发者提供了宝贵的参考。
474 8
|
监控 前端开发 jenkins
Jenkins 在前端项目持续部署中的应用,包括其原理、流程以及具体的实现方法
本文深入探讨了Jenkins在前端项目持续部署中的应用,涵盖其基本原理、流程及具体实现方法。首先介绍了Jenkins的基本概念及其在自动化任务中的作用,随后详细解析了从前端代码提交到生产环境部署的全过程,包括构建、测试、部署等关键步骤。最后,强调了持续部署中的代码质量控制、环境一致性、监控预警及安全管理等注意事项,旨在帮助开发者高效、安全地实施持续部署。
325 5
|
缓存 前端开发 JavaScript
JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式
本文深入解析了JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式(Hash路由和History路由)、优点及挑战,并通过实际案例分析,帮助开发者更好地理解和应用这一关键技术,提升用户体验。
509 1
|
JSON 缓存 前端开发
个人练习前端技术使用Bootstrap、JQuery、thymeleaf
个人练习前端技术使用Bootstrap、JQuery、thymeleaf
199 3
|
缓存 JavaScript 前端开发
拿下奇怪的前端报错(三):npm install卡住了一个钟- 从原理搞定安装的全链路问题
本文详细分析了 `npm install` 过程中可能出现的卡顿问题及解决方法,包括网络问题、Node.js 版本不兼容、缓存问题、权限问题、包冲突、过时的 npm 版本、系统资源不足和脚本问题等,并提供了相应的解决策略。同时,还介绍了开启全部日志、使用替代工具和使用 Docker 提供 Node 环境等其他处理方法。
10728 2
|
编解码 前端开发 JavaScript
前端:Rem 及其转换原理
Rem是一种用于前端开发的相对字体大小单位,它基于根元素的字体尺寸来定义文本大小,有助于实现响应式布局和可维护性。Rem的转换原理是通过相对于HTML根元素的字体大小来设置子元素的字体大小,从而实现统一的比例调整,提高页面的适应性和灵活性。此方法简化了跨浏览器和设备的布局调整,增强了用户体验。
|
JSON 缓存 前端开发
个人练习前端技术使用Bootstrap、JQuery、thymeleaf
个人练习前端技术使用Bootstrap、JQuery、thymeleaf
140 2
|
移动开发 前端开发 JavaScript
浅谈前端路由原理hash和history
该文章详细解析了前端路由的两种模式——Hash模式与History模式的工作原理及其实现方式,并通过实例代码展示了如何在实际项目中运用这两种路由模式。
|
移动开发 缓存 前端开发
构建高效的前端路由系统:从原理到实践
在现代Web开发中,前端路由系统已成为构建单页面应用(SPA)不可或缺的核心技术之一。不同于传统服务器渲染的多页面应用,SPA通过前端路由技术实现了页面的局部刷新与无缝导航,极大地提升了用户体验。本文将深入剖析前端路由的工作原理,包括Hash模式与History模式的实现差异,并通过实战演示如何在Vue.js框架中构建一个高效、可维护的前端路由系统。我们还将探讨如何优化路由加载性能,确保应用在不同网络环境下的流畅运行。本文不仅适合前端开发者深入了解前端路由的奥秘,也为后端转前端或初学者提供了从零到一的实战指南。