如何使计数器正确工作
How do I make my counter work correctly?
我有一个函数,当我按下按钮时会添加div。我在删除中写了一个计数器重置逻辑,它应该重新计算我所有的名字。
我的问题是,当我添加3个项目,并删除第二个项目时,我的第三个项目不会重命名自己。
我做错了什么?
$(function () {
var rowItem = $(".row", $(".formitems")); //select all rows from class formitems
$(".formitems").on("click", ".addRow", function () {
var newItem = rowItem.clone(),
rowIndex = $(".row", $(".formitems")).length;
$(":input", newItem).each(function (c, obj) {
$(obj).attr("name", $(obj).attr("crap") + rowIndex);
});
$(".formitems").append(newItem); // adds At the end of the container
}).on("click", ".removeRow", function () {
if ($(".row", $(".formitems")).length > 1) {
var target = $(this).parent().parent().parent().parent(".row");
target.slideUp(function () {
target.remove();
});
}
for (i = 0; i < $(".row", $(".formitems")).length; i++) //select our div called //formitems and then count rows in it
{
rowobj = $(".row", $(".formitems"))[i];
$(":input", rowobj).each(function (c, obj) {
$(obj).attr("name", $(obj).attr("crap") + i);
})
}
});
});
编辑:好的,所以我在使用remove()之前和之后都会发出警报。jquery重新计算所有属性需要时间吗?如果是,它们是否已缓存?如果是,我可以强制刷新它们吗。?
考虑简化你的生活。
<input type="text" name="blah[]" />
您可以拥有任意数量的这些元素。服务器将接收一组值,这意味着您不必手动计算它们。
据我所知,您希望在删除后更新"name"。但是,当slideUp()完成时,代码异步执行remove(),而重命名在调用slideUp()之后立即调用,在调用remove(()之前调用。
您可以通过将重命名代码放在调用remove()之后的slideUp()处理程序中来解决此问题:
}).on("click", ".removeRow", function () {
if ($(".row", $(".formitems")).length > 1) {
var target = $(this).parent().parent().parent().parent(".row");
target.slideUp(function () {
target.remove();
// rename now!
for (i = 0; i < $(".row", $(".formitems")).length; i++) {
rowobj = $(".row", $(".formitems"))[i];
$(":input", rowobj).each(function (c, obj) {
$(obj).attr("name", $(obj).attr("crap") + i);
})
}
});
}
});
相关文章:
- JQuery使计数器每次更改时都会增加
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- Javascript猜测游戏-计数器不工作
- 类似按钮增量计数器不工作.PHP,AJAX,MySQL,javascript
- JS滑块计数器不工作..需要找到一种方法使其正常工作
- 似乎无法让这个计数器工作
- Facebook计数器无法在单个页面上工作
- 如何使计数器正确工作
- JS数字计数器只工作一次
- jQuery计数器在IE中不工作<8.
- firefox上的Javascript函数问题没有通过jquery键盘输入启动计数器(在Chrome和IE上工作)
- Angularjs:如何在ng repeat工作时显示增量计数器(进度消息)
- 无法让第二个事件监听器为MVC计数器应用工作
- 我如何使这个Javascript分数计数器工作
- Javascript计数器不工作
- 当我发出警报时,我的javascriptcode正在工作.我需要以计数器格式显示时间(秒递减方式)
- 图像和计数器不能与多个计数器一起工作
- Javascript计数器只工作一次