返回顶部
首页 > 资讯 > 前端开发 > VUE >Javascript中怎么利用闭包循环绑定事件
  • 840
分享到

Javascript中怎么利用闭包循环绑定事件

2024-04-02 19:04:59 840人浏览 八月长安
摘要

javascript中怎么利用闭包循环绑定事件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。例如:一个不确定长度的列表,在鼠标

javascript中怎么利用闭包循环绑定事件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

例如:一个不确定长度的列表,在鼠标经过某一条的时候改变背景。

﹤!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "Http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"﹥  
﹤html xmlns="http://www.w3.org/1999/xhtml" ﹥  
﹤head﹥  
﹤title﹥Untitled Page﹤/title﹥  
﹤/head﹥  
﹤body﹥  
﹤ul id="list"﹥  
﹤li﹥第1条记录﹤/li﹥  
﹤li﹥第2条记录﹤/li﹥  
﹤li﹥第3条记录﹤/li﹥  
﹤li﹥第4条记录﹤/li﹥  
﹤li﹥第5条记录﹤/li﹥  
﹤li﹥第6条记录﹤/li﹥  
﹤/ul﹥  
﹤script type="text/javascript"﹥  
var list_obj = document.getElementById("list").getElementsByTagName("li"); //获取list下面的所有li的对象数组   
for (var i = 0; i ﹤= list_obj.length; i++) {   
list_obj[i].onmousemove = function() {   
this.style.backgroundColor = "#cdcdcd";   
}   
list_obj[i].onmouseout = function() {   
this.style.backgroundColor = "#FFFFFF";   
}   
}   
﹤/script﹥  
﹤/body﹥  
﹤/html﹥

这个例子循环为一组对象绑定事件处理函数。

但是,如果我们在这个基础上增加一些需求。比如在点击某一条记录的时候弹出这是第几条记录?

可能你会理所当然的这么写:

﹤!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"﹥  
﹤html xmlns="http://www.w3.org/1999/xhtml" ﹥  
﹤head﹥  
﹤title﹥Untitled Page﹤/title﹥  
﹤/head﹥  
﹤body﹥  
﹤ul id="list"﹥  
﹤li﹥第1条记录﹤/li﹥  
﹤li﹥第2条记录﹤/li﹥  
﹤li﹥第3条记录﹤/li﹥  
﹤li﹥第4条记录﹤/li﹥  
﹤li﹥第5条记录﹤/li﹥  
﹤li﹥第6条记录﹤/li﹥  
﹤/ul﹥  
﹤script type="text/javascript"﹥  
var list_obj = document.getElementById("list").getElementsByTagName("li"); //获取list下面的所有li的对象数组   
for (var i = 0; i ﹤= list_obj.length; i++) {   
list_obj[i].onmousemove = function() {   
this.style.backgroundColor = "#cdcdcd";   
}   
list_obj[i].onmouseout = function() {   
this.style.backgroundColor = "#FFFFFF";   
}   
list_obj[i].onclick = function() {   
alert("这是第" + i + "记录");   
}   
}   
﹤/script﹥  
﹤/body﹥  
﹤/html﹥

测试一下你会发现alert出来的都是:这是第6记录

其实这里for循环已将整个列表循环了一遍,并执行了i++,所以这里i变成了6,

有什么好的办法解决这个问题吗?

那就是闭包了,个人认为闭包是js中最难捉摸的地方之一,

看看什么是闭包:

闭包时是指内层的函数可以引用存在与包围他的函数内的变量,即使外层的函数的执行已经终止。

可以查阅:http://www.CSS88.com/article.asp?id=469

这个例子中我们可以这样做:

﹤!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"﹥  
﹤html xmlns="http://www.w3.org/1999/xhtml" ﹥  
﹤head﹥  
﹤title﹥Untitled Page﹤/title﹥  
﹤/head﹥  
﹤body﹥  
﹤ul id="list"﹥  
﹤li﹥第1条记录﹤/li﹥  
﹤li﹥第2条记录﹤/li﹥  
﹤li﹥第3条记录﹤/li﹥  
﹤li﹥第4条记录﹤/li﹥  
﹤li﹥第5条记录﹤/li﹥  
﹤li﹥第6条记录﹤/li﹥  
﹤/ul﹥  
﹤script type="text/javascript"﹥  
function tt(nob) {   
this.clickFunc = function() {   
alert("这是第" + (nob + 1) + "记录");   
}   
}   
var list_obj = document.getElementById("list").getElementsByTagName("li"); //获取list下面的所有li的对象数组   
for (var i = 0; i ﹤= list_obj.length; i++) {   
list_obj[i].onmousemove = function() {   
this.style.backgroundColor = "#cdcdcd";   
}   
list_obj[i].onmouseout = function() {   
this.style.backgroundColor = "#FFFFFF";   
}   
var col = new tt(i);   
list_obj[i].onclick = col.clickFunc;   
}   
﹤/script﹥  
﹤/body﹥  
﹤/html﹥

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网VUE频道,感谢您对编程网的支持。

--结束END--

本文标题: Javascript中怎么利用闭包循环绑定事件

本文链接: https://lsjlt.com/news/70060.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Javascript中怎么利用闭包循环绑定事件
    Javascript中怎么利用闭包循环绑定事件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。例如:一个不确定长度的列表,在鼠标...
    99+
    2024-04-02
  • javascript中怎么绑定事件
    javascript中怎么绑定事件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 方法:1、使用HTML标签的...
    99+
    2024-04-02
  • JavaScript中怎么实现事件循环
    今天就跟大家聊聊有关JavaScript中怎么实现事件循环,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.Main.js 执行2.调用second...
    99+
    2024-04-02
  • javascript怎么解除绑定事件
    小编给大家分享一下javascript怎么解除绑定事件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方法:1、使用“对象名.onclick=null”语句;2、使...
    99+
    2023-06-14
  • 怎么在python中使用事件循环
    这篇文章将为大家详细讲解有关怎么在python中使用事件循环,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;...
    99+
    2023-06-14
  • JavaScript中怎么利用setTimeout防止循环超时
    今天就跟大家聊聊有关JavaScript中怎么利用setTimeout防止循环超时,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。JS是单线程的,一个...
    99+
    2024-04-02
  • jQuery中on绑定的事件怎么解绑
    这篇文章主要介绍了jQuery中on绑定的事件怎么解绑的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jQuery中on绑定的事件怎么解绑文章都会有所收获,下面我们一起来看看吧。解绑单个事件在jQuery中,我们...
    99+
    2023-07-05
  • Node.js中怎么实现事件循环
    这篇文章将为大家详细讲解有关Node.js中怎么实现事件循环,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Node.js 事件循环Node.js 是单进程单...
    99+
    2024-04-02
  • JavaScript中闭包怎么用
    这篇文章将为大家详细讲解有关JavaScript中闭包怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。闭包真的是学过一遍又一遍,Js博大精深,每次学习都感觉有新的收获...
    99+
    2024-04-02
  • JavaScript中for循环怎么用
    这篇文章给大家分享的是有关JavaScript中for循环怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言对于for循环,相信大家再常用不过了。但是这回说下for循环是因...
    99+
    2024-04-02
  • vue中怎么实现事件绑定
    本篇文章为大家展示了vue中怎么实现事件绑定,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、在vue中,绑定事件,用v-on:事件类型, 如绑定一个点击事件, 我...
    99+
    2024-04-02
  • JavaScript中怎么应用闭包
    JavaScript中怎么应用闭包,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是闭包(Closure)简单讲,闭包就是指有权访问另一...
    99+
    2024-04-02
  • JavaScript中怎么利用DOM添加事件
    这期内容当中小编将会给大家带来有关JavaScript中怎么利用DOM添加事件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JavaScript DOM添加事件这是我在给...
    99+
    2024-04-02
  • JavaScript中的for循环怎么用
    这篇文章主要介绍“JavaScript中的for循环怎么用”,在日常操作中,相信很多人在JavaScript中的for循环怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • jQuery中bind/One/Live/On事件绑定怎么用
    这篇文章主要介绍了jQuery中bind/One/Live/On事件绑定怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。浏览jQuery...
    99+
    2024-04-02
  • 怎么在Java中使用GUI中的事件绑定
    怎么在Java中使用GUI中的事件绑定?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。程序绑定的概念:绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。...
    99+
    2023-05-30
    java gui
  • jquery怎么绑定事件调用函数
    这篇文章主要讲解了“jquery怎么绑定事件调用函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery怎么绑定事件调用函数”吧! ...
    99+
    2024-04-02
  • vue 中怎么利用v-model绑定表单控件
    这篇文章将为大家详细讲解有关vue 中怎么利用v-model绑定表单控件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、v-model 双向绑定文本<...
    99+
    2024-04-02
  • JavaScript中的闭包closure怎么使用
    这篇文章主要介绍“JavaScript中的闭包closure怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript中的闭包closure怎么使用”文章能帮助大家解决问题。闭包简述...
    99+
    2023-07-02
  • 怎么在linux中利用shell循环日期
    怎么在linux中利用shell循环日期?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。#!/usr/bin/env bashstart_date=&q...
    99+
    2023-06-09
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作