JavaScript jQuery Mobile 在 for 循环中创建按钮
javascript jquery mobile create buttons in for-loop
for (var i = 0; i < 10; i++) {
array.push($("<a href='"#'" data-role='"button'" data-inline='"true'">" + i + "</a>"));
$("#row").append(array[i]);
array[i].click(function () {
changeval(i);
console.log(i);
});
}
我的问题是函数 changeval(i) 总是变成相同的值 i 的 10。我尝试在此 for 循环中创建具有 onclick-function 的按钮。我需要一个提示。
我会将按钮的初始添加和"单击"操作分开。
for (var i = 0; i < 10; i++) {
array
.push($("<a href='"#'" data-role='"button'" data-inline='"true'">"
+ i + "</a>"));
$("#row").append(array[i]);
array[i].click(function() {
changeval(i);
console.log(i);
});
}
将拆分为:
for (var i = 0; i < 10; i++) {
array.push("<a href='"#'" data-role='"button'" data-inline='"true'">"
+ i + "</a>");
$("#row").append(array[i]);
};
$('#row').on('click', 'a', function() {
changeVal($(this).text());
console.log($(this).text());
};
另请注意,javascript 中的变量和函数应该用 CamelCaseForBetterReadability 编写。另请注意,我摆脱了数组项周围的 $()。最后,如果您不想转义字符串中的引号,则可以使用单个引号。
查看 JS 闭包,i
的值设置为循环的最后一次迭代。将其包装在一个自执行的函数中,i
作为参数:
for (var i = 0; i < 10; i++) {
(function(i) {
array
.push($("<a href='"#'" data-role='"button'" data-inline='"true'">"
+ i + "</a>"));
$("#row").append(array[i]);
array[i].click(function() {
changeval(i);
console.log(i);
});
})(i)
}
使用闭包,例如
for (var i = 0; i < 10; i++) {
(function(i) {
array[i].click(function() { . . . } );
)(i);
}
如果你正在使用jQuery(如果你使用.click
:)您可以使用
http://api.jquery.com/jQuery.each/
循环遍历元素并实现相同的功能。
相关文章:
- 创建按钮,根据表单字段中的数据获取特定的URL
- 当我通过.aspx.cs创建按钮时,它不起作用
- 创建按钮不调用表单内的任何操作
- Internet Explorer 8不允许动态创建按钮
- 如何在不加载页面的情况下创建按钮事件
- 使用动态创建按钮单击事件未触发
- “创建”按钮,用于切换不包含特定文本颜色的表行的可见性
- Javascript创建按钮不会显示在HTML中
- 函数创建按钮,带有传递参数的 onclick 函数
- JavaScript jQuery Mobile 在 for 循环中创建按钮
- 火狐工具栏上的创建按钮来执行JS
- 使用 JavaScript 在 for 循环中创建按钮
- 如何创建按钮转到测验软件中的下一个问题
- 需要帮助创建按钮以激活 JavaScript 函数
- 使用javascript从服务器端的名称列表中创建按钮/href
- 如何用JavaScript用onclick创建按钮
- 创建按钮时陷入无休止的循环
- 如何覆盖剑道网格中的创建按钮单击
- 动态创建的DIV在其他创建按钮中的位置
- 创建按钮到函数Javascript