用类(function(){})()实现点击显示index索引值的详解
code:
<script type="text/javascript">
for(var i = ; i < ; i++){
var btn = document.createElement("button");
btn.appendChild(document.createTextNode("button" + i));
btn.addEventListener("click", (function(x){return function(){
console.log(x);
}})(i));
document.body.appendChild(btn);
}
</script>
浏览器显示:
1,2,3,4,8,9,10不用解释。主要看5-7,实现点击出现对应索引的监听事件。
它的运行过程大概是这样的:
当文档载入的时候,for循环,输出4个按钮及按钮文本。此时为每个按钮绑定了一个click事件,当js执行到此处的时候,自执行函数执行,传入i值给参数x,返回一个匿名函数,该匿名函数被绑定给每个button,保存有x参。当点击的时候,该函数执行。
其他实现方法:
方法1:
<script type="text/javascript">
for(var i = ; i < ; i++){
var btn = document.createElement("button");
btn.appendChild(document.createTextNode("button" + i));
btn.onclick = (function(x){return function(){
console.log(x);
}})(i);
document.body.appendChild(btn);
}
}
</script>
方法2:
<script type="text/javascript">
for(var i = 0; i < 5; i++){
var btn = document.createElement("button");
btn.appendChild(document.createTextNode("button" + i));
(function(x){btn.onclick = function(){
console.log(x);
}})(i);
document.body.appendChild(btn);
}
}
</script>
用类(function(){})()实现点击显示index索引值的详解的更多相关文章
- 微信小程序获取index索引值的方法
功能:点击某一项,底部出现粉色边框 首先需要通过 bindtap 为每一个item项绑定一个点击事件,其次需要添加自定义属性 data-* = {{index}} ,以便在函数中获取到被点击item项 ...
- 第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解
第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解 一. 引言 上两节介绍了构造方法的语法及参数,说明了构造方法是Python的类创建实例后首先执行的方法,并说明如果类 ...
- 微信小程序,获取点击元素的索引值index
1.需求说明 点击 “加号图片” 上传图片,需要知道点击的是第几个图片,动态的修改src数组,这里图片用的 wx:for 循环出来的 2.遇到问题 按照官方最新文档循环的方式,索引值是以 wx:fo ...
- C++模板之隐式实例化、显示实例化、隐式调用、显示调用和模板特化详解
模板的实例化指函数模板(类模板)生成模板函数(模板类)的过程.对于函数模板而言,模板实例化之后,会生成一个真正的函数.而类模板经过实例化之后,只是完成了类的定义,模板类的成员函数需要到调用时才会被初始 ...
- Android中点击事件的四种写法详解
Android中点击事件的四种写法 使用内部类实现点击事件 使用匿名内部类实现点击事件 让MainActivity实现View.OnClickListener接口 通过布局文件中控件的属性 第一种方法 ...
- MySQL数据库写入图片并读取图片显示到JLabel上的详解
相较于Oracle,MySQL作为一个轻量级的开源的数据库,可谓是大大简化了我们的操作.这次我就来写一个关于数据库存入图片,获取图片的例子吧,也为了今后的复习使用.(我们一般采取存入路径的方式,而不是 ...
- Java AtomicInteger类的使用方法详解_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下: public class Samp ...
- LinkedList类详解
LinkedList类中的方法与实现原理 目录 一.数据结构 二.类标题 三.字段 四.构造函数 五.方法分析 5.1 共有方法 public boolean add(Object o) public ...
- jQuery 二级菜单,一次显示一个小类 鼠标点击显示小类
jQuery 二级菜单,一次显示一个小类 鼠标点击显示小类 本例有另外2个关联案例,演示地址分别为2.php,3.php 演示 XML/HTML Code <div class="ar ...
随机推荐
- iOS 本地推送通知
1.什么是本地推送通知 不需要联网的情况下,应用程序经由系统发出的通知 2.本地推送的使用场景 定时提醒,如玩游戏.记账.闹钟.备忘录等 3.实现本地推送通知的步骤 创建本地推送通知的对象UILoca ...
- [C#6] 7-索引初始化器
0. 目录 C#6 新增特性目录 1. 老版本的代码 private static void Main() { var dictionary = new Dictionary<int, stri ...
- .NET开源插件内核
http://www.cnblogs.com/newmin/ .NET开源插件内核:支持WinForm和Asp.net. 设计的初衷是:利用“开发平台 + 插件内核"来开发子系统,及对系统进 ...
- RMAN异机恢复遭遇ORA-01547、ORA-01152、ORA-01110错误案例
测试环境: 操作系统 : Red Hat Enterprise Linux ES release 4 (Nahant Update 4) VMWARE 数据库 : O ...
- SQL报表(Report Builder)里面的几个常见问题(持续更新)
一 SQL报表常常会遇到在表格中的相除,如果分母为零,一般会显示错误号,我们可以这么处理:(加上是A/B) ,, B) 但是我们不能这么写: ,,A/B) //我们不能这么写,会产生BUG,至于什么B ...
- Swift实现封装PopMenu菜单,可在屏幕任意位置弹出
效果图: 说明: 代码现已支持 Swift3 语法 使用介绍: 1.初始化位置 //frame 为整个popview相对整个屏幕的位置 箭头距离右边位置,默认15 //popMenu = SwiftP ...
- beautifulSoup(1)
import re from bs4 import BeautifulSoupdoc = ['<html><head><title>Page title</t ...
- 如何正确的使用jquery-ajax
什么是ajax ajax全称Asynchronous Javascript And XML,就是异步javascript和xml ajax的作用 ajax通常用于异步加载网页内容,以及局部更新. 实际 ...
- 俄罗斯方块(Java实现)
程序效果: 代码: //Box.java 1 package tetris; public class Box { private final int M = 30, N = 12; private ...
- POJ3070 Fibonacci[矩阵乘法]
Fibonacci Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13677 Accepted: 9697 Descri ...