下面的程序想实现功能:创建
10
个
li
节点,添加到
id="ulist"
的
ul
中,当鼠标经过每个
li
节点时,就在显示区添加一句
pass + (li
节点的标号
)
。
<ul id="ulist"></ul>
<div id="show"></div>
<script>
dojo.addOnLoad(function() {
for(var
i=0;i<10;i++){
var a =
dojo.doc.createElement("li");
a.innerHTML =
"item " + i;
dojo.connect(a,"mouseover", function(){
show.innerHTML = show.innerHTML +
"<br/> pass " + i;
} );
ulist.appendChild(a);
}
});
</script>
上述代码并没有达到要求,鼠标经过任一个
li
节点时,显示区就多一句
“pass 10”
。
问题出在给
mouseover
绑定的响应函数上,当鼠标经过任一个
li
节点时,就去执行代码中的匿名函数
function(){
show.innerHTML = show.innerHTML +
"<br/> pass " + i;
}
i
源于该匿名函数定义时所在的环境,在该环境中
i
的值随着
for
循环从
0
增长到
10
;到后来匿名响应函数执行时,
i
的值是
10
,而不是像期望的那样去反映
li
的标号。
修正方法:给每个
li
绑定一个新建的函数,新建的函数中使用的变量不依赖
i
。将代码中的蓝色部分改为
function
getFun(k){
return
function(){ show.innerHTML = show.innerHTML + "<br/> pass " +
k;}
}
dojo.connect(a,"mouseover",
getFun(i));
或者合并为
dojo.connect(a,"mouseover",
(function(k){
return
function(){ show.innerHTML = show.innerHTML + "<br/> pass " +
k;}
})(i));
都是可行的。
分享到:
相关推荐
13.2.2 事件的绑定 13.2.3 直接调用事件处理函数 13.2.4 事件处理函数的返回值 13.2.5 带参数的事件响应及其例子 13.2.6 “this”关键字 13.3 标准事件模型 13.3.1 起泡和捕捉--浏览器的...
用 JavaScript 编写,在 Node.js 和浏览器上运行 特征 特斯拉有: 宏 - 读取和运行时 一级功能 数据类型 - 在构造函数参数计数上重载 模式匹配 参数解构 - 在函数参数、let 绑定和匹配表达式中 repl - 带制表符补全...
解答学生问题--一个ip绑定多个域名 8-19 2.php运行过程时序图 php书写规范 8-19 3.php基本语法介绍 php数据类型介绍 8-19 4.整型细节说明 8-19 5.布尔细节 浮点数细节 字符串细节 算术运算符① 8-19 6.算术运算符② ...
02 js之onsubmit事件与组织事件外延 03 DOM节点的增删改查与属性设值 04 正反选练习 05 js练习之二级联动 06 jquery以及jquery对象介绍 07 jquery选择器 08 jquery的查找筛选器 09 jquery练习之左侧菜单 第44章 01...
Q nodejs 库的##Test 项目试了几个嵌套nodejs回调的例子尝试使用原始承诺(延期) 也通过在另一个中嵌套承诺来实现(在闭包内启用多个输入) 需要尝试 nbind 方法将范围绑定到正在去节点化的回调。
解答学生问题--一个ip绑定多个域名 8-19 2.php运行过程时序图 php书写规范 8-19 3.php基本语法介绍 php数据类型介绍 8-19 4.整型细节说明 8-19 5.布尔细节 浮点数细节 字符串细节 算术运算符① 8-19 6.算术运算符② ...
第 1 章 JavaScript 是什么...............................................1 3 1.1 历史简述..............................................1 1.2 JavaScript 实现................................................
解答学生问题--一个ip绑定多个域名 8-19 2.php运行过程时序图 php书写规范 8-19 3.php基本语法介绍 php数据类型介绍 8-19 4.整型细节说明 8-19 5.布尔细节 浮点数细节 字符串细节 算术运算符① 8-19 6.算术运算符② ...
解答学生问题--一个ip绑定多个域名 8-19 2.php运行过程时序图 php书写规范 8-19 3.php基本语法介绍 php数据类型介绍 8-19 4.整型细节说明 8-19 5.布尔细节 浮点数细节 字符串细节 算术运算符① 8-19 6.算术运算符② ...
解答学生问题--一个ip绑定多个域名 8-19 2.php运行过程时序图 php书写规范 8-19 3.php基本语法介绍 php数据类型介绍 8-19 4.整型细节说明 8-19 5.布尔细节 浮点数细节 字符串细节 算术运算符① 8-19 6.算术运算符② ...