1.1 on(事件, 处理函数)
// 点击li,输出该li的文本内容:
/*
$(‘li’).click(function(){
console.log( $(this).text());
})
*/
//上面的点击事件,效果相当于:
$(‘li’).on(‘click’, function(){
console.log( $(this).text());
})
1.2 on(事件, 执行子元素,事件处理函数)
当我添加一个按钮,点击按钮时,添加li,按钮的功能写在绑定点击事件的后面,就像这样:
效果:
新add的li没有被绑定上点击事件,
原因:因为文档从上到下解析,给原来的3个li绑定点击事件的代码先运行了,后面才动态新增的li
所以,就要用到事件委托,将事件委托给父元素,当子元素的事件被触发时,由于没有处理程序,会冒泡给父元素,让父元素来处理
//用事件委托
$(‘ul’).on(‘click’, ‘li’, function(){
console.log( $(this).text());
})
这样,即使button动态生成li的代码在后面,点击动态新增的li时,也能输出li对应的文本了
有关动态生成的元素的事件绑定,均需考虑委托
1.3 on(事件, 执行子元素,数据,事件处理函数)
还可以传递额外的数据给函数
//用事件委托
$(‘ul’).on(‘click’, ‘li’, {name:‘ccy’}, function(e){
console.log( $(this).text());
console.log(e.data); //事件中的data对象存储着传递进去的数据
})
事件中的对象:
2. off():解绑事件
2.1 off(事件)
//解除button上的click事件
$(‘button’).off(‘click’)
2.2 off(事件,处理函数名)
当同一个事件有多个处理函数,想要解绑其中一个时使用
注意写的时处理函数的名称,不是再写一次匿名函数
如:
这样是不能解绑的,第二个click事件的处理函数和解绑里写的函数是两个函数,不能起到解绑的作用
要像这样,才能解绑打印888的处理函数:
$(‘button’).on(‘click’, function(){
$(‘ul’).append(‘
- ’ + $(‘li’).length + ‘
- ’)
})
/* 第二个点击事件的处理函数 */
function test(){
console.log(888);
}
$(‘button’).on(‘click’, test)
$(‘button’).off(‘click’,test)
3. one():只执行一次事件
绑定的事件只执行一次
当用户有需要某个功能时,才展示相应的html结构,不需要时不展示,可以设计成点击之后有一个弹窗的效果,节省性能并提高网页的加载速度;当展示之后,关闭这个小弹窗,用户可能又一次需要这个功能,又点击一次,所以展示之后,不把弹窗html结构删除,也节省了重复加载同一个资源的性能
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
最后
最后写上我自己一直喜欢的一句名言:
世界上只有一种真正的英雄主义就是在认清生活真相之后仍然热爱它
vert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6L3lnVUFXMUlsN2FRMlNlT2VueEF1QTMxNDlEQmRDMlU0bzBpY21pYVloa2szeXVFZmNydGV4MGYxSWljdFJGNU9RYUw5TWJHb0hiTmtWQlBQUGliTng0RWJpY0EvNjQw?x-oss-process=image/format,png)