jQuery点击事件函数记住参数
jQuery click event function remembering the parameter
下面的Javascript/jQuery代码将输出三个数字分别为1、2和3的div。然而,当点击任何一个div时,它总是会提醒数字3。
我该如何写才能提醒"正确"的号码不将数字放入HTML本身
var values = [1, 2, 3];
for (var i in values) {
var element = $("<div>" + values[i] + "</div>");
$("body").append(element);
element.click(function() { alert(values[i]); });
}
这应该可以解决问题:
var values = [1, 2, 3];
function clickHandler(event) {
alert(event.target.innerHTML);
}
for (var i in values) {
var element = $("<div>" + values[i] + "</div>");
$("body").append(element);
element.click(clickHandler);
}
因此,为了避免闭包问题,您可以将绑定封装在IIFE:中
var values = [1, 2, 3];
for (var i in values) {
var element = $("<div>" + values[i] + "</div>");
$("body").append(element);
(function(i) { // 'i' is local to anonymous function block
element.click(function() {
alert(values[i]);
});
}(i));
}
试试这个:
var values = [1, 2, 3];
for (var i in values) {
var element = $("<div>" + values[i] + "</div>");
$("body").append(element);
}
$("div").click(function() {
alert($(this).text());
});
希望它对有用
var values = [1, 2, 3];
for (var i in values) {
var element = $("<div>" + values[i] + "</div>");
$("body").append(element);
element.click(function() { alert(this.innerHTML); });
}
最简单的解决方案:Read.innerHTML
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- AngularJS:我可以跳过函数参数回调吗
- 函数未将值作为参数传递
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 为什么不'我们在javascript中使用函数参数的数据类型
- 你好,这是测试用例,我必须在函数中传递n个参数
- JavaScript - 多参数函数,它是多个图像库的字符串
- 如何从两个参数函数返回随机整数
- 以无点风格在Ramda中编写一个无参数函数
- JS:将单参数函数转换为可链接函数
- 正则表达式类似于Javascript中的参数函数
- 将 $' 值传递给替换的关联参数函数
- "这个“;在参数函数中
- 如何向jquery插件发送参数函数
- 将参数函数Node.js从一个js传递到另一个js
- 如何在javascript参数函数中传递PHP post方法字符串
- 装饰 Javascript Promise.then 以便参数函数接收附加参数
- 正在分析setInterval ID'是的's参数函数
- 如何根据一个参数函数计算年龄
- 对象参数/函数和/或三元运算符混淆