闭包函数正在附加循环中的所有索引
Closure function is appending all index from loop
我正在尝试使用循环将索引值附加到元素。我做了一个 closure
以避免附加多个索引。
但我的 closure
函数仍在将多个(上一个)索引添加到 dom
var $newdiv = $('.div').clone().removeClass('div').addClass('show')
$col = $('<div />');
var add = function () {
for(var i=1; i<=10; i++){
(function x (n) {
return function () { //not working!
$newdiv.find($('a span').append(n)).end().clone().appendTo($col);
}();
}(i));
}
}
$col.appendTo('#content');
$('button').click(function () { add()});
$('#content').slimScroll({});
我这样更新了我的代码。它工作正常。
var $newdiv = $('.div').clone().removeClass('div').addClass('show')
$col = $('<div />');
var n = 0;
var add = function () {
for(var i=1; i<=10; i++){
$newdiv.clone().removeClass('div').addClass('show')
.find('span').append(n = n < 9 ? '0'+(++n) : ++n).end().clone().appendTo($col);
}
}
$col.appendTo('#content');
$('button').click(function () { add()});
$('#content').slimScroll({});
我正在尝试使用循环将索引值附加到元素。我做了一个 closure
以避免附加多个索引。
但我的 closure
函数仍在将多个(上一个)索引添加到 dom
var $newdiv = $('.div').clone().removeClass('div').addClass('show')
$col = $('<div />');
var add = function () {
for(var i=1; i<=10; i++){
(function x (n) {
return function () { //not working!
$newdiv.find($('a span').append(n)).end().clone().appendTo($col);
}();
}(i));
}
}
$col.appendTo('#content');
$('button').click(function () { add()});
$('#content').slimScroll({});
我这样更新了我的代码。它工作正常。
var $newdiv = $('.div').clone().removeClass('div').addClass('show')
$col = $('<div />');
var n = 0;
var add = function () {
for(var i=1; i<=10; i++){
$newdiv.clone().removeClass('div').addClass('show')
.find('span').append(n = n < 9 ? '0'+(++n) : ++n).end().clone().appendTo($col);
}
}
$col.appendTo('#content');
$('button').click(function () { add()});
$('#content').slimScroll({});