Javascript动态绑定事件的简单实现代码
Javascript动态绑定事件的简单实现代码
发布时间:2016-12-30 来源:查字典编辑
摘要:下面是页面的dom结构复制代码代码如下:OneTwoThreeFour下面是javascript代码复制代码代码如下://根据ID获取对象f...

下面是页面的dom结构

复制代码 代码如下:

<ul id="test">

<li>One</li>

<li>Two</li>

<li>Three</li>

<li>Four</li>

</ul>

下面是javascript代码

复制代码 代码如下:

//根据ID获取对象

function id(v) { return document.getElementById(v); }

//根据标记获取对象

function tag(element, t) { return element.getElementsByTagName(t); }

window.onload = function() {

//获取test下的所有li对象

var li = tag(id("test"), "li");

//用循环绑定鼠标单击事件

for(var i=0; i<li.length; i++) {

li[i].onclick = function() {

//期望弹出1,2,3,4

//结果弹出的总是5

alert("你点击了第" + (i+1) + "项");

}

}

}

为什么会出现上边的现像呢?原因是“for中的事件绑定并没有马上得到执行”。修改后的代码如下:

复制代码 代码如下:

//根据ID获取对象

function id(v) { return document.getElementById(v); }

//根据标记获取对象

function tag(element, t) { return element.getElementsByTagName(t); }

window.onload = function() {

//获取test下的所有li对象

var li = tag(id("test"), "li");

//用循环绑定鼠标单击事件

for(var i=0; i<li.length; i++) {

(function() {

var t = i

li[i].onclick = function() {

alert("你点击了第" + t + "项");

}

})();

}

}

测试代码,一切OK,我们正常的将循环变量i传到onclick事件对应的处理函数中。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类